作者 tangxvhui

暂存

@@ -301,14 +301,16 @@ type ( @@ -301,14 +301,16 @@ type (
301 TagId int64 `json:"tagId"` // 标签id 301 TagId int64 `json:"tagId"` // 标签id
302 } 302 }
303 MiniAllArticleTagResponse{ 303 MiniAllArticleTagResponse{
304 - TagGroup []string `json:"tagGroup"`  
305 - Tags []ArticleTagItem `json:"tags"` 304 + TagGroup []ArticleTagGroup `json:"tagGroup"`
306 } 305 }
307 - 306 + ArticleTagGroup {
  307 + Group string `json:"group"`
  308 + Tags []ArticleTagItem `json:"tags"`
  309 + }
308 ArticleTagItem { 310 ArticleTagItem {
309 Id int64 `json:"id"` 311 Id int64 `json:"id"`
310 Group string `json:"group"` 312 Group string `json:"group"`
311 - Name string `json:"name"` 313 + Name string `json:"name"`
312 } 314 }
313 ) 315 )
314 316
@@ -7,6 +7,8 @@ import ( @@ -7,6 +7,8 @@ import (
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/comment" 7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/comment"
8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc"
9 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" 9 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
  10 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata"
  11 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result"
10 ) 12 )
11 13
12 func MiniArticleCommentAtWhoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { 14 func MiniArticleCommentAtWhoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
@@ -18,11 +20,10 @@ func MiniArticleCommentAtWhoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc @@ -18,11 +20,10 @@ func MiniArticleCommentAtWhoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc
18 } 20 }
19 21
20 l := comment.NewMiniArticleCommentAtWhoLogic(r.Context(), svcCtx) 22 l := comment.NewMiniArticleCommentAtWhoLogic(r.Context(), svcCtx)
  23 + token := contextdata.GetUserTokenFromCtx(r.Context())
  24 + req.CompanyId = token.CompanyId
  25 + req.UserId = token.UserId
21 resp, err := l.MiniArticleCommentAtWho(&req) 26 resp, err := l.MiniArticleCommentAtWho(&req)
22 - if err != nil {  
23 - httpx.ErrorCtx(r.Context(), w, err)  
24 - } else {  
25 - httpx.OkJsonCtx(r.Context(), w, resp)  
26 - } 27 + result.HttpResult(r, w, resp, err)
27 } 28 }
28 } 29 }
@@ -5,6 +5,7 @@ import ( @@ -5,6 +5,7 @@ import (
5 5
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 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/types" 7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
  8 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr"
8 9
9 "github.com/zeromicro/go-zero/core/logx" 10 "github.com/zeromicro/go-zero/core/logx"
10 ) 11 )
@@ -24,7 +25,21 @@ func NewMiniArticleCommentAtWhoLogic(ctx context.Context, svcCtx *svc.ServiceCon @@ -24,7 +25,21 @@ func NewMiniArticleCommentAtWhoLogic(ctx context.Context, svcCtx *svc.ServiceCon
24 } 25 }
25 26
26 func (l *MiniArticleCommentAtWhoLogic) MiniArticleCommentAtWho(req *types.MiniArticleCommentAtWhoRequest) (resp *types.MiniArticleCommentAtWhoResponse, err error) { 27 func (l *MiniArticleCommentAtWhoLogic) MiniArticleCommentAtWho(req *types.MiniArticleCommentAtWhoRequest) (resp *types.MiniArticleCommentAtWhoResponse, err error) {
27 - // todo: add your logic here and delete this line 28 + var conn = l.svcCtx.DefaultDBConn()
  29 + articleInfo, err := l.svcCtx.ArticleRepository.FindOne(l.ctx, conn, req.ArticleId)
  30 + if err != nil {
  31 + return nil, xerr.NewErrMsgErr("获取评论人信息失败", err)
  32 + }
  33 + if articleInfo.CompanyId != req.CompanyId {
  34 + resp = &types.MiniArticleCommentAtWhoResponse{}
  35 + return resp, nil
  36 + }
  37 +
  38 + // userList := []*domain.User{}
  39 + // if len(articleInfo.WhoRead) == 0 {
  40 +
  41 + // return
  42 + // }
28 43
29 return 44 return
30 } 45 }
@@ -11,6 +11,7 @@ import ( @@ -11,6 +11,7 @@ import (
11 11
12 "text/template" 12 "text/template"
13 13
  14 + "github.com/samber/lo"
14 "github.com/zeromicro/go-zero/core/logx" 15 "github.com/zeromicro/go-zero/core/logx"
15 ) 16 )
16 17
@@ -87,11 +88,15 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini @@ -87,11 +88,15 @@ func (l *MiniCreateArticleCommentLogic) MiniCreateArticleComment(req *types.Mini
87 for _, val := range req.AtWho { 88 for _, val := range req.AtWho {
88 uids = append(uids, val.Id) 89 uids = append(uids, val.Id)
89 } 90 }
  91 + uids = lo.Uniq(uids)
90 queryOption := domain.NewQueryOptions().WithFindOnly().WithKV("ids", uids) 92 queryOption := domain.NewQueryOptions().WithFindOnly().WithKV("ids", uids)
91 _, atWhoList, err = l.svcCtx.UserRepository.Find(l.ctx, conn, queryOption) 93 _, atWhoList, err = l.svcCtx.UserRepository.Find(l.ctx, conn, queryOption)
92 if err != nil { 94 if err != nil {
93 return nil, xerr.NewErrMsgErr("检查@的人员失败", err) 95 return nil, xerr.NewErrMsgErr("检查@的人员失败", err)
94 } 96 }
  97 + if len(uids) != len(atWhoList) {
  98 + return nil, xerr.NewErrMsg("检查@的人员失败")
  99 + }
95 } 100 }
96 // 处理文本内容 101 // 处理文本内容
97 content := template.HTMLEscapeString(req.Content) 102 content := template.HTMLEscapeString(req.Content)
@@ -821,8 +821,12 @@ type MiniAllArticleTagRequest struct { @@ -821,8 +821,12 @@ type MiniAllArticleTagRequest struct {
821 } 821 }
822 822
823 type MiniAllArticleTagResponse struct { 823 type MiniAllArticleTagResponse struct {
824 - TagGroup []string `json:"tagGroup"`  
825 - Tags []ArticleTagItem `json:"tags"` 824 + TagGroup []ArticleTagGroup `json:"tagGroup"`
  825 +}
  826 +
  827 +type ArticleTagGroup struct {
  828 + Group string `json:"group"`
  829 + Tags []ArticleTagItem `json:"tags"`
826 } 830 }
827 831
828 type ArticleTagItem struct { 832 type ArticleTagItem struct {
@@ -8,6 +8,7 @@ import ( @@ -8,6 +8,7 @@ import (
8 "gorm.io/gorm" 8 "gorm.io/gorm"
9 ) 9 )
10 10
  11 +// 保存文章和标签的关系,主要用于分组统计用
11 type ArticleAndTag struct { 12 type ArticleAndTag struct {
12 Id int64 // 唯一标识 13 Id int64 // 唯一标识
13 CompanyId int64 `json:"companyId"` 14 CompanyId int64 `json:"companyId"`
@@ -28,7 +29,7 @@ func (m *ArticleAndTag) BeforeCreate(tx *gorm.DB) (err error) { @@ -28,7 +29,7 @@ func (m *ArticleAndTag) BeforeCreate(tx *gorm.DB) (err error) {
28 } 29 }
29 30
30 func (m *ArticleAndTag) BeforeUpdate(tx *gorm.DB) (err error) { 31 func (m *ArticleAndTag) BeforeUpdate(tx *gorm.DB) (err error) {
31 - // m.UpdatedAt = time.Now().Unix() 32 + m.UpdatedAt = time.Now().Unix()
32 return 33 return
33 } 34 }
34 35
@@ -22,6 +22,7 @@ type ArticleTag struct { @@ -22,6 +22,7 @@ type ArticleTag struct {
22 Name string // 标签名称 22 Name string // 标签名称
23 Group string // 标签分类 23 Group string // 标签分类
24 Remark string // 备注 24 Remark string // 备注
  25 + SortBy int64 // 顺序
25 } 26 }
26 27
27 func (m *ArticleTag) TableName() string { 28 func (m *ArticleTag) TableName() string {
@@ -19,6 +19,7 @@ type ArticleTag struct { @@ -19,6 +19,7 @@ type ArticleTag struct {
19 Name string `json:"name"` // 标签名称 19 Name string `json:"name"` // 标签名称
20 Group string `json:"group"` // 标签分类 20 Group string `json:"group"` // 标签分类
21 Remark string `json:"remark"` // 备注 21 Remark string `json:"remark"` // 备注
  22 + SortBy int64 `json:"sortBy"` // 顺序
22 } 23 }
23 type ArticleTagRepository interface { 24 type ArticleTagRepository interface {
24 Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error) 25 Insert(ctx context.Context, conn transaction.Conn, dm *ArticleTag) (*ArticleTag, error)