作者 tangxvhui
@@ -385,7 +385,7 @@ type ( @@ -385,7 +385,7 @@ type (
385 SystemArticleSearchRequest { 385 SystemArticleSearchRequest {
386 CompanyId int64 `json:"companyId,optional"` 386 CompanyId int64 `json:"companyId,optional"`
387 Title string `json:"title,optional"` //标题 387 Title string `json:"title,optional"` //标题
388 - Author string `json:"author,optional"` //发布人 388 + Author int64 `json:"author,optional"` //发布人
389 BeginTime int64 `json:"beginTime,optional"` //开始时间 389 BeginTime int64 `json:"beginTime,optional"` //开始时间
390 EndTime int64 `json:"endTime,optional"` //结束时间 390 EndTime int64 `json:"endTime,optional"` //结束时间
391 Tags []int64 `json:"tags,optional"` //标签 391 Tags []int64 `json:"tags,optional"` //标签
@@ -400,11 +400,12 @@ type ( @@ -400,11 +400,12 @@ type (
400 SystemArticleSearch { 400 SystemArticleSearch {
401 Id int64 `json:"id"` //id 401 Id int64 `json:"id"` //id
402 Title string `json:"title"` //标题 402 Title string `json:"title"` //标题
  403 + AuthorId int64 `json:"authorId"` //发布人ID
403 Author string `json:"author"` //发布人 404 Author string `json:"author"` //发布人
404 Images []string `json:"images"` //图片 405 Images []string `json:"images"` //图片
405 CreatedAt int64 `json:"createdAt"` //文章的创建日期 406 CreatedAt int64 `json:"createdAt"` //文章的创建日期
406 CountLove int `json:"countLove"` //点赞数量 407 CountLove int `json:"countLove"` //点赞数量
407 - CountComment int `json:"CountComment"` //评论数量 408 + CountComment int `json:"countComment"` //评论数量
408 Show int `json:"show"` //是否隐藏 [0显示、1不显示] 409 Show int `json:"show"` //是否隐藏 [0显示、1不显示]
409 Tags []string `json:"tags"` //标签 410 Tags []string `json:"tags"` //标签
410 TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] 411 TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
@@ -258,7 +258,7 @@ type ( @@ -258,7 +258,7 @@ type (
258 Size int `json:"size"` 258 Size int `json:"size"`
259 ArticleId int64 `json:"articleId"` // 文章ID 259 ArticleId int64 `json:"articleId"` // 文章ID
260 TopId int64 `json:"topId,optional"` // 文章顶层ID 260 TopId int64 `json:"topId,optional"` // 文章顶层ID
261 - Author string `json:"author,optional"` // 用户 261 + Author int64 `json:"author,optional"` // 用户
262 Show int `json:"show,optional"` // 显示状态 262 Show int `json:"show,optional"` // 显示状态
263 BeginTime int64 `json:"beginTime,optional"` // 开始时间 263 BeginTime int64 `json:"beginTime,optional"` // 开始时间
264 EndTime int64 `json:"endTime,optional"` // 结束时间 264 EndTime int64 `json:"endTime,optional"` // 结束时间
@@ -30,7 +30,8 @@ func (l *SystemSearchArticleLogic) SystemSearchArticle(req *types.SystemArticleS @@ -30,7 +30,8 @@ func (l *SystemSearchArticleLogic) SystemSearchArticle(req *types.SystemArticleS
30 queryOptions := domain.NewQueryOptions(). 30 queryOptions := domain.NewQueryOptions().
31 WithOffsetLimit(req.Page, req.Size). 31 WithOffsetLimit(req.Page, req.Size).
32 WithKV("title", req.Title). 32 WithKV("title", req.Title).
33 - WithKV("author", req.Author). 33 + WithKV("authorId", req.Author).
  34 + WithKV("tags", req.Tags).
34 WithKV("beginCreatedAt", req.BeginTime). 35 WithKV("beginCreatedAt", req.BeginTime).
35 WithKV("endCreatedAt", req.EndTime) 36 WithKV("endCreatedAt", req.EndTime)
36 total, articles, err := l.svcCtx.ArticleRepository.Find(l.ctx, conn, req.CompanyId, queryOptions) 37 total, articles, err := l.svcCtx.ArticleRepository.Find(l.ctx, conn, req.CompanyId, queryOptions)
@@ -41,23 +42,49 @@ func (l *SystemSearchArticleLogic) SystemSearchArticle(req *types.SystemArticleS @@ -41,23 +42,49 @@ func (l *SystemSearchArticleLogic) SystemSearchArticle(req *types.SystemArticleS
41 Total: int(total), 42 Total: int(total),
42 List: make([]types.SystemArticleSearch, 0), 43 List: make([]types.SystemArticleSearch, 0),
43 } 44 }
  45 + authorIds := make([]int64, 0)
44 lo.ForEach(articles, func(item *domain.Article, index int) { 46 lo.ForEach(articles, func(item *domain.Article, index int) {
  47 + authorIds = append(authorIds, item.AuthorId)
  48 + })
  49 + //查询用户数据,重新赋值更新用户名称
  50 + _, users, _ := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithFindOnly().WithKV("ids", authorIds))
  51 + //获取标签
  52 + _, tags, _ := l.svcCtx.ArticleTagRepository.Find(l.ctx, conn, req.CompanyId, domain.NewQueryOptions())
  53 + lo.ForEach(articles, func(item *domain.Article, index int) {
  54 + //图片
45 images := make([]string, 0) 55 images := make([]string, 0)
46 lo.ForEach(item.Images, func(img domain.Image, n int) { 56 lo.ForEach(item.Images, func(img domain.Image, n int) {
47 images = append(images, img.Url) 57 images = append(images, img.Url)
48 }) 58 })
  59 + //发布人
  60 + author := item.Author.Name
  61 + for _, user := range users {
  62 + if user.Id == item.AuthorId {
  63 + author = user.Name
  64 + }
  65 + }
  66 + //标签
  67 + articleTags := make([]string, 0)
  68 + lo.ForEach(item.Tags, func(tagId int64, index int) {
  69 + for _, t := range tags {
  70 + if t.Id == tagId {
  71 + articleTags = append(articleTags, t.Name)
  72 + }
  73 + }
  74 + })
49 resp.List = append(resp.List, types.SystemArticleSearch{ 75 resp.List = append(resp.List, types.SystemArticleSearch{
50 Id: item.Id, 76 Id: item.Id,
51 Title: item.Title, 77 Title: item.Title,
52 - Author: item.Author.Name, 78 + AuthorId: item.AuthorId,
  79 + Author: author,
53 Images: images, 80 Images: images,
54 CreatedAt: item.CreatedAt, 81 CreatedAt: item.CreatedAt,
55 CountLove: item.CountLove, 82 CountLove: item.CountLove,
56 CountComment: item.CountComment, 83 CountComment: item.CountComment,
57 Show: int(item.Show), 84 Show: int(item.Show),
58 - Tags: nil, 85 + Tags: articleTags,
59 TargetUser: int(item.TargetUser), 86 TargetUser: int(item.TargetUser),
60 }) 87 })
61 }) 88 })
62 - return resp, nil 89 + return
63 } 90 }
@@ -2,7 +2,6 @@ package comment @@ -2,7 +2,6 @@ package comment
2 2
3 import ( 3 import (
4 "context" 4 "context"
5 -  
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 5 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction" 7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/db/transaction"
@@ -29,61 +28,69 @@ func NewMiniDeleteArticleCommentLogic(ctx context.Context, svcCtx *svc.ServiceCo @@ -29,61 +28,69 @@ func NewMiniDeleteArticleCommentLogic(ctx context.Context, svcCtx *svc.ServiceCo
29 // 小程序端人人员删除评论 28 // 小程序端人人员删除评论
30 func (l *MiniDeleteArticleCommentLogic) MiniDeleteArticleComment(req *types.MiniDeleteArticleCommentRequest) (resp *types.MiniDeleteArticleCommentResponse, err error) { 29 func (l *MiniDeleteArticleCommentLogic) MiniDeleteArticleComment(req *types.MiniDeleteArticleCommentRequest) (resp *types.MiniDeleteArticleCommentResponse, err error) {
31 var conn = l.svcCtx.DefaultDBConn() 30 var conn = l.svcCtx.DefaultDBConn()
32 - commetInfo, err := l.svcCtx.ArticleCommentRepository.FindOne(l.ctx, conn, req.CommentId) 31 + commentInfo, err := l.svcCtx.ArticleCommentRepository.FindOne(l.ctx, conn, req.CommentId)
33 if err != nil { 32 if err != nil {
34 return nil, xerr.NewErrMsgErr("删除评论信息失败", err) 33 return nil, xerr.NewErrMsgErr("删除评论信息失败", err)
35 } 34 }
36 35
37 - if commetInfo.FromUserId != req.UserId { 36 + if commentInfo.FromUserId != req.UserId {
38 return nil, xerr.NewErrMsg("没有操作权限") 37 return nil, xerr.NewErrMsg("没有操作权限")
39 } 38 }
40 39
41 - if commetInfo.Show == domain.CommentShowDisable { 40 + if commentInfo.Show == domain.CommentShowDisable {
42 resp = &types.MiniDeleteArticleCommentResponse{ 41 resp = &types.MiniDeleteArticleCommentResponse{
43 - Id: commetInfo.Id, 42 + Id: commentInfo.Id,
44 } 43 }
45 return resp, nil 44 return resp, nil
46 } 45 }
47 - commetInfo.Show = domain.CommentShowDisable 46 + commentInfo.Show = domain.CommentShowDisable
48 47
49 // 变更回复数量 48 // 变更回复数量
50 err = transaction.UseTrans(l.ctx, conn.DB(), func(ctx context.Context, c transaction.Conn) error { 49 err = transaction.UseTrans(l.ctx, conn.DB(), func(ctx context.Context, c transaction.Conn) error {
51 - _, err = l.svcCtx.ArticleCommentRepository.Update(ctx, c, commetInfo) 50 + _, err = l.svcCtx.ArticleCommentRepository.Update(ctx, c, commentInfo)
52 if err != nil { 51 if err != nil {
53 return err 52 return err
54 } 53 }
55 // 减少上级评论的回复数量 54 // 减少上级评论的回复数量
56 - if commetInfo.Pid != 0 {  
57 - err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commetInfo.Pid) 55 + if commentInfo.Pid != 0 {
  56 + err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commentInfo.Pid)
58 if err != nil { 57 if err != nil {
59 return err 58 return err
60 } 59 }
61 } 60 }
62 // 减少最顶层的评论回复计数 61 // 减少最顶层的评论回复计数
63 - if commetInfo.TopId != 0 && commetInfo.Pid != commetInfo.TopId {  
64 - err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commetInfo.TopId) 62 + if commentInfo.TopId != 0 && commentInfo.Pid != commentInfo.TopId {
  63 + err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commentInfo.TopId)
65 if err != nil { 64 if err != nil {
66 return err 65 return err
67 } 66 }
68 } 67 }
69 //减少加段落评论计数 68 //减少加段落评论计数
70 - if commetInfo.SectionId > 0 {  
71 - err = l.svcCtx.ArticleSectionRepository.IncreaseCountComment(ctx, c, -1, commetInfo.SectionId) 69 + if commentInfo.SectionId > 0 {
  70 + err = l.svcCtx.ArticleSectionRepository.IncreaseCountComment(ctx, c, -1, commentInfo.SectionId)
72 if err != nil { 71 if err != nil {
73 return err 72 return err
74 } 73 }
75 } 74 }
76 // 减少文章的评论数 75 // 减少文章的评论数
77 - err = l.svcCtx.ArticleRepository.IncreaseCountComment(ctx, c, -1, commetInfo.ArticleId) 76 + err = l.svcCtx.ArticleRepository.IncreaseCountComment(ctx, c, -1, commentInfo.ArticleId)
78 if err != nil { 77 if err != nil {
79 return err 78 return err
80 } 79 }
  80 +
  81 + //// 评论被隐藏消息
  82 + //var messageLogic = message.NewMiniSystemLogic(l.ctx, l.svcCtx)
  83 + //err = messageLogic.AbnormalCommentHidden(c, commentInfo.CompanyId, commentInfo.FromUserId, commentInfo.Content)
  84 + //if err != nil {
  85 + // return err
  86 + //}
  87 +
81 return nil 88 return nil
82 }, true) 89 }, true)
83 90
84 if err != nil { 91 if err != nil {
85 return nil, xerr.NewErrMsgErr("删除评论信息失败", err) 92 return nil, xerr.NewErrMsgErr("删除评论信息失败", err)
86 } 93 }
87 - resp = &types.MiniDeleteArticleCommentResponse{Id: commetInfo.Id} 94 + resp = &types.MiniDeleteArticleCommentResponse{Id: commentInfo.Id}
88 return resp, nil 95 return resp, nil
89 } 96 }
@@ -35,9 +35,11 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types. @@ -35,9 +35,11 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types.
35 WithKV("articleId", req.ArticleId). 35 WithKV("articleId", req.ArticleId).
36 WithKV("topId", req.TopId). 36 WithKV("topId", req.TopId).
37 WithKV("show", req.Show). 37 WithKV("show", req.Show).
38 - WithKV("fromUserName", req.Author).  
39 WithKV("beginCreatedAt", req.BeginTime). 38 WithKV("beginCreatedAt", req.BeginTime).
40 WithKV("endCreatedAt", req.EndTime) 39 WithKV("endCreatedAt", req.EndTime)
  40 + if req.Author > 0 {
  41 + queryOptions = queryOptions.WithKV("fromUserId", req.Author)
  42 + }
41 total, comments, err := l.svcCtx.ArticleCommentRepository.Find(l.ctx, conn, queryOptions) 43 total, comments, err := l.svcCtx.ArticleCommentRepository.Find(l.ctx, conn, queryOptions)
42 if err != nil { 44 if err != nil {
43 return nil, xerr.NewErrMsgErr("获取文章评论失败", err) 45 return nil, xerr.NewErrMsgErr("获取文章评论失败", err)
@@ -46,6 +48,7 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types. @@ -46,6 +48,7 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types.
46 Total: total, 48 Total: total,
47 List: make([]types.SystemArticleCommentSearchItem, 0), 49 List: make([]types.SystemArticleCommentSearchItem, 0),
48 } 50 }
  51 + authorIds := make([]int64, 0)
49 lo.ForEach(comments, func(item *domain.ArticleComment, index int) { 52 lo.ForEach(comments, func(item *domain.ArticleComment, index int) {
50 resp.List = append(resp.List, types.SystemArticleCommentSearchItem{ 53 resp.List = append(resp.List, types.SystemArticleCommentSearchItem{
51 Id: item.Id, 54 Id: item.Id,
@@ -68,6 +71,22 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types. @@ -68,6 +71,22 @@ func (l *SystemArticleCommentSearchLogic) SystemArticleCommentSearch(req *types.
68 Content: item.Content, 71 Content: item.Content,
69 Show: int(item.Show), 72 Show: int(item.Show),
70 }) 73 })
  74 + authorIds = append(authorIds, item.FromUserId)
  75 + })
  76 + //查询用户数据,重新赋值更新用户名称
  77 + _, users, _ := l.svcCtx.UserRepository.Find(l.ctx, conn, domain.NewQueryOptions().WithFindOnly().WithKV("ids", authorIds))
  78 + lo.ForEach(resp.List, func(item types.SystemArticleCommentSearchItem, index int) {
  79 + for _, user := range users {
  80 + if user.Id == item.FromUserId {
  81 + resp.List[index].FromUser = types.CommentAuthor{
  82 + Id: user.Id,
  83 + Name: user.Name,
  84 + Avatar: user.Avatar,
  85 + Position: user.Position,
  86 + Company: item.FromUser.Company,
  87 + }
  88 + }
  89 + }
71 }) 90 })
72 return 91 return
73 } 92 }
@@ -2,6 +2,7 @@ package comment @@ -2,6 +2,7 @@ package comment
2 2
3 import ( 3 import (
4 "context" 4 "context"
  5 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/message"
5 6
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
@@ -61,49 +62,57 @@ func (l *SystemEditAticleCommentShowLogic) SystemEditAticleCommentShow(req *type @@ -61,49 +62,57 @@ func (l *SystemEditAticleCommentShowLogic) SystemEditAticleCommentShow(req *type
61 62
62 func (l *SystemEditAticleCommentShowLogic) disableShow(commentId int64, companyId int64) error { 63 func (l *SystemEditAticleCommentShowLogic) disableShow(commentId int64, companyId int64) error {
63 var conn = l.svcCtx.DefaultDBConn() 64 var conn = l.svcCtx.DefaultDBConn()
64 - commetInfo, err := l.svcCtx.ArticleCommentRepository.FindOne(l.ctx, conn, commentId) 65 + commentInfo, err := l.svcCtx.ArticleCommentRepository.FindOne(l.ctx, conn, commentId)
65 if err != nil { 66 if err != nil {
66 return xerr.NewErrMsgErr("删除评论信息失败", err) 67 return xerr.NewErrMsgErr("删除评论信息失败", err)
67 } 68 }
68 - if commetInfo.CompanyId != companyId { 69 + if commentInfo.CompanyId != companyId {
69 return xerr.NewErrMsg("没有操作权限") 70 return xerr.NewErrMsg("没有操作权限")
70 } 71 }
71 - if commetInfo.Show == domain.CommentShowDisable { 72 + if commentInfo.Show == domain.CommentShowDisable {
72 return nil 73 return nil
73 } 74 }
74 - commetInfo.Show = domain.CommentShowDisable 75 + commentInfo.Show = domain.CommentShowDisable
75 // 变更回复数量 76 // 变更回复数量
76 err = transaction.UseTrans(l.ctx, conn.DB(), func(ctx context.Context, c transaction.Conn) error { 77 err = transaction.UseTrans(l.ctx, conn.DB(), func(ctx context.Context, c transaction.Conn) error {
77 - _, err = l.svcCtx.ArticleCommentRepository.Update(ctx, c, commetInfo) 78 + _, err = l.svcCtx.ArticleCommentRepository.Update(ctx, c, commentInfo)
78 if err != nil { 79 if err != nil {
79 return err 80 return err
80 } 81 }
81 // 减少上级评论的回复数量 82 // 减少上级评论的回复数量
82 - if commetInfo.Pid != 0 {  
83 - err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commetInfo.Pid) 83 + if commentInfo.Pid != 0 {
  84 + err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commentInfo.Pid)
84 if err != nil { 85 if err != nil {
85 return err 86 return err
86 } 87 }
87 } 88 }
88 // 减少最顶层的评论回复计数 89 // 减少最顶层的评论回复计数
89 - if commetInfo.TopId != 0 && commetInfo.Pid != commetInfo.TopId {  
90 - err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commetInfo.TopId) 90 + if commentInfo.TopId != 0 && commentInfo.Pid != commentInfo.TopId {
  91 + err = l.svcCtx.ArticleCommentRepository.IncreaseCountReply(l.ctx, c, -1, commentInfo.TopId)
91 if err != nil { 92 if err != nil {
92 return err 93 return err
93 } 94 }
94 } 95 }
95 //减少加段落评论计数 96 //减少加段落评论计数
96 - if commetInfo.SectionId > 0 {  
97 - err = l.svcCtx.ArticleSectionRepository.IncreaseCountComment(ctx, c, -1, commetInfo.SectionId) 97 + if commentInfo.SectionId > 0 {
  98 + err = l.svcCtx.ArticleSectionRepository.IncreaseCountComment(ctx, c, -1, commentInfo.SectionId)
98 if err != nil { 99 if err != nil {
99 return err 100 return err
100 } 101 }
101 } 102 }
102 // 减少文章的评论数 103 // 减少文章的评论数
103 - err = l.svcCtx.ArticleRepository.IncreaseCountComment(ctx, c, -1, commetInfo.ArticleId) 104 + err = l.svcCtx.ArticleRepository.IncreaseCountComment(ctx, c, -1, commentInfo.ArticleId)
104 if err != nil { 105 if err != nil {
105 return err 106 return err
106 } 107 }
  108 +
  109 + // 评论被隐藏消息
  110 + var messageLogic = message.NewMiniSystemLogic(l.ctx, l.svcCtx)
  111 + err = messageLogic.AbnormalCommentHidden(c, commentInfo.CompanyId, commentInfo.FromUserId, commentInfo.Content)
  112 + if err != nil {
  113 + return err
  114 + }
  115 +
107 return nil 116 return nil
108 }, true) 117 }, true)
109 118
@@ -49,6 +49,9 @@ func (l *MiniUserApplyJoinCompanyLogic) MiniUserApplyJoinCompany(req *types.Mini @@ -49,6 +49,9 @@ func (l *MiniUserApplyJoinCompanyLogic) MiniUserApplyJoinCompany(req *types.Mini
49 return nil, xerr.NewErrMsgErr("申请失败", err) 49 return nil, xerr.NewErrMsgErr("申请失败", err)
50 } 50 }
51 if user != nil { 51 if user != nil {
  52 + if user.Enable != domain.UserEnable {
  53 + return nil, xerr.NewErrMsgErr("账号不可用", err)
  54 + }
52 token, err = generateToken(l.svcCtx, user) 55 token, err = generateToken(l.svcCtx, user)
53 if err != nil { 56 if err != nil {
54 return nil, xerr.NewErrMsgErr("登录失败", err) 57 return nil, xerr.NewErrMsgErr("登录失败", err)
@@ -165,14 +165,14 @@ type SystemArticleCommentSearchMeResponse struct { @@ -165,14 +165,14 @@ type SystemArticleCommentSearchMeResponse struct {
165 } 165 }
166 166
167 type SystemArticleCommentSearchRequest struct { 167 type SystemArticleCommentSearchRequest struct {
168 - Page int `json:"page"`  
169 - Size int `json:"size"`  
170 - ArticleId int64 `json:"articleId"` // 文章ID  
171 - TopId int64 `json:"topId,optional"` // 文章顶层ID  
172 - Author string `json:"author,optional"` // 用户  
173 - Show int `json:"show,optional"` // 显示状态  
174 - BeginTime int64 `json:"beginTime,optional"` // 开始时间  
175 - EndTime int64 `json:"endTime,optional"` // 结束时间 168 + Page int `json:"page"`
  169 + Size int `json:"size"`
  170 + ArticleId int64 `json:"articleId"` // 文章ID
  171 + TopId int64 `json:"topId,optional"` // 文章顶层ID
  172 + Author int64 `json:"author,optional"` // 用户
  173 + Show int `json:"show,optional"` // 显示状态
  174 + BeginTime int64 `json:"beginTime,optional"` // 开始时间
  175 + EndTime int64 `json:"endTime,optional"` // 结束时间
176 } 176 }
177 177
178 type SystemArticleCommentSearchResponse struct { 178 type SystemArticleCommentSearchResponse struct {
@@ -1165,7 +1165,7 @@ type SystemArticleGetResponse struct { @@ -1165,7 +1165,7 @@ type SystemArticleGetResponse struct {
1165 type SystemArticleSearchRequest struct { 1165 type SystemArticleSearchRequest struct {
1166 CompanyId int64 `json:"companyId,optional"` 1166 CompanyId int64 `json:"companyId,optional"`
1167 Title string `json:"title,optional"` //标题 1167 Title string `json:"title,optional"` //标题
1168 - Author string `json:"author,optional"` //发布人 1168 + Author int64 `json:"author,optional"` //发布人
1169 BeginTime int64 `json:"beginTime,optional"` //开始时间 1169 BeginTime int64 `json:"beginTime,optional"` //开始时间
1170 EndTime int64 `json:"endTime,optional"` //结束时间 1170 EndTime int64 `json:"endTime,optional"` //结束时间
1171 Tags []int64 `json:"tags,optional"` //标签 1171 Tags []int64 `json:"tags,optional"` //标签
@@ -1181,11 +1181,12 @@ type SystemArticleSearchResponse struct { @@ -1181,11 +1181,12 @@ type SystemArticleSearchResponse struct {
1181 type SystemArticleSearch struct { 1181 type SystemArticleSearch struct {
1182 Id int64 `json:"id"` //id 1182 Id int64 `json:"id"` //id
1183 Title string `json:"title"` //标题 1183 Title string `json:"title"` //标题
  1184 + AuthorId int64 `json:"authorId"` //发布人ID
1184 Author string `json:"author"` //发布人 1185 Author string `json:"author"` //发布人
1185 Images []string `json:"images"` //图片 1186 Images []string `json:"images"` //图片
1186 CreatedAt int64 `json:"createdAt"` //文章的创建日期 1187 CreatedAt int64 `json:"createdAt"` //文章的创建日期
1187 CountLove int `json:"countLove"` //点赞数量 1188 CountLove int `json:"countLove"` //点赞数量
1188 - CountComment int `json:"CountComment"` //评论数量 1189 + CountComment int `json:"countComment"` //评论数量
1189 Show int `json:"show"` //是否隐藏 [0显示、1不显示] 1190 Show int `json:"show"` //是否隐藏 [0显示、1不显示]
1190 Tags []string `json:"tags"` //标签 1191 Tags []string `json:"tags"` //标签
1191 TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人] 1192 TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
@@ -3,6 +3,7 @@ package repository @@ -3,6 +3,7 @@ package repository
3 import ( 3 import (
4 "context" 4 "context"
5 "fmt" 5 "fmt"
  6 + "strings"
6 7
7 "github.com/pkg/errors" 8 "github.com/pkg/errors"
8 "github.com/tiptok/gocomm/pkg/cache" 9 "github.com/tiptok/gocomm/pkg/cache"
@@ -127,9 +128,6 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction. @@ -127,9 +128,6 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction.
127 if v, ok := queryOptions["title"]; ok && v.(string) != "" { 128 if v, ok := queryOptions["title"]; ok && v.(string) != "" {
128 tx = tx.Where("title like ?", "%"+v.(string)+"%") 129 tx = tx.Where("title like ?", "%"+v.(string)+"%")
129 } 130 }
130 - if v, ok := queryOptions["author"]; ok && v.(string) != "" {  
131 - tx = tx.Where(`author #>> '{"name"}' like ?`, "%"+v.(string)+"%")  
132 - }  
133 if v, ok := queryOptions["beginCreatedAt"]; ok { 131 if v, ok := queryOptions["beginCreatedAt"]; ok {
134 tx = tx.Where("created_at >= ?", v) 132 tx = tx.Where("created_at >= ?", v)
135 } 133 }
@@ -139,6 +137,13 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction. @@ -139,6 +137,13 @@ func (repository *ArticleRepository) Find(ctx context.Context, conn transaction.
139 if v, ok := queryOptions["authorId"]; ok { 137 if v, ok := queryOptions["authorId"]; ok {
140 tx = tx.Where("author_id=?", v) 138 tx = tx.Where("author_id=?", v)
141 } 139 }
  140 + if v, ok := queryOptions["tags"]; ok && len(v.([]int64)) > 0 {
  141 + values := make([]string, 0)
  142 + for _, item := range v.([]int64) {
  143 + values = append(values, fmt.Sprintf("%v", item))
  144 + }
  145 + tx = tx.Where("tags @> ?", "["+strings.Join(values, ",")+"]")
  146 + }
142 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil { 147 if total, tx = transaction.PaginationAndCount(ctx, tx, queryOptions, &ms); tx.Error != nil {
143 return dms, tx.Error 148 return dms, tx.Error
144 } 149 }
@@ -73,4 +73,20 @@ CREATE INDEX IF NOT EXISTS idx_message_system_company_id ON "public"."message_sy @@ -73,4 +73,20 @@ CREATE INDEX IF NOT EXISTS idx_message_system_company_id ON "public"."message_sy
73 73
74 -- 业务消息表 74 -- 业务消息表
75 -- (公司ID)索引 75 -- (公司ID)索引
76 -CREATE INDEX IF NOT EXISTS idx_message_business_company_id ON "public"."message_business" USING btree(company_id);  
  76 +CREATE INDEX IF NOT EXISTS idx_message_business_company_id ON "public"."message_business" USING btree(company_id);
  77 +
  78 +
  79 +-- 迁移准备
  80 +-- 修改起始的id序号
  81 +select setval('user_id_seq',10000);
  82 +select setval('department_id_seq',10000);
  83 +select setval('role_id_seq',10000);
  84 +select setval('company_id_seq',10000);
  85 +
  86 +select setval('article_id_seq',100000);
  87 +select setval('article_and_tag_id_seq',100000);
  88 +select setval('article_backup_id_seq',100000);
  89 +select setval('article_comment_id_seq',100000);
  90 +select setval('article_draft_id_seq',100000);
  91 +select setval('article_section_id_seq',100000);
  92 +select setval('article_tag_id_seq',100000);