正在显示
8 个修改的文件
包含
92 行增加
和
48 行删除
@@ -314,14 +314,14 @@ type ( | @@ -314,14 +314,14 @@ type ( | ||
314 | TagGroup []ArticleTagGroup `json:"tagGroup"` | 314 | TagGroup []ArticleTagGroup `json:"tagGroup"` |
315 | } | 315 | } |
316 | ArticleTagGroup { | 316 | ArticleTagGroup { |
317 | - Group string `json:"group"` | 317 | + Category string `json:"category"` |
318 | Tags []ArticleTagItem `json:"tags"` | 318 | Tags []ArticleTagItem `json:"tags"` |
319 | } | 319 | } |
320 | ArticleTagItem { | 320 | ArticleTagItem { |
321 | - Id int64 `json:"id"` | ||
322 | - Group string `json:"group"` | ||
323 | - Name string `json:"name"` | ||
324 | - Image string `json:"image"` | 321 | + Id int64 `json:"id"` |
322 | + Category string `json:"category"` | ||
323 | + Name string `json:"name"` | ||
324 | + Image string `json:"image"` | ||
325 | } | 325 | } |
326 | ) | 326 | ) |
327 | 327 | ||
@@ -466,10 +466,11 @@ type ( | @@ -466,10 +466,11 @@ type ( | ||
466 | UserId int64 `path:",optional"` | 466 | UserId int64 `path:",optional"` |
467 | } | 467 | } |
468 | MiniHomePageRespose { | 468 | MiniHomePageRespose { |
469 | - Tags []ArticleTagCount `json:"tags"` | 469 | + TagCategory []string `json:"tagCategory"` |
470 | + Tags []ArticleTagCount `json:"tags"` | ||
470 | } | 471 | } |
471 | ArticleTagCount { | 472 | ArticleTagCount { |
472 | - TagGroup string `json:"tagGroup"` // 标签分组 | 473 | + TagCategory string `json:"tagCategory"` // 标签分组 |
473 | TagId int64 `json:"tagId"` // 标签id | 474 | TagId int64 `json:"tagId"` // 标签id |
474 | TagImage string `json:"tagImage"` // 对应的图标 | 475 | TagImage string `json:"tagImage"` // 对应的图标 |
475 | TagName string `json:"tagName"` // 标签名称 | 476 | TagName string `json:"tagName"` // 标签名称 |
@@ -3,26 +3,27 @@ package article | @@ -3,26 +3,27 @@ package article | ||
3 | import ( | 3 | import ( |
4 | "net/http" | 4 | "net/http" |
5 | 5 | ||
6 | - "github.com/zeromicro/go-zero/rest/httpx" | ||
7 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/article" | 6 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/article" |
8 | "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" |
9 | "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" |
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" | ||
10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
10 | ) | 11 | ) |
11 | 12 | ||
13 | +// 展示小程序端首页的数据 | ||
12 | func MiniShowHomePageHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | 14 | func MiniShowHomePageHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { |
13 | return func(w http.ResponseWriter, r *http.Request) { | 15 | return func(w http.ResponseWriter, r *http.Request) { |
14 | var req types.MiniHomePageRequest | 16 | var req types.MiniHomePageRequest |
15 | - if err := httpx.Parse(r, &req); err != nil { | ||
16 | - httpx.ErrorCtx(r.Context(), w, err) | ||
17 | - return | ||
18 | - } | 17 | + // if err := httpx.Parse(r, &req); err != nil { |
18 | + // httpx.ErrorCtx(r.Context(), w, err) | ||
19 | + // return | ||
20 | + // } | ||
19 | 21 | ||
20 | l := article.NewMiniShowHomePageLogic(r.Context(), svcCtx) | 22 | l := article.NewMiniShowHomePageLogic(r.Context(), svcCtx) |
23 | + token := contextdata.GetUserTokenFromCtx(r.Context()) | ||
24 | + req.UserId = token.UserId | ||
25 | + req.CompanyId = token.CompanyId | ||
21 | resp, err := l.MiniShowHomePage(&req) | 26 | resp, err := l.MiniShowHomePage(&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 | } |
@@ -38,20 +38,20 @@ func (l *MiniAllArticleTagLogic) MiniAllArticleTag(req *types.MiniAllArticleTagR | @@ -38,20 +38,20 @@ func (l *MiniAllArticleTagLogic) MiniAllArticleTag(req *types.MiniAllArticleTagR | ||
38 | for _, val := range tagList { | 38 | for _, val := range tagList { |
39 | if m, ok := tagMap[val.Category]; ok { | 39 | if m, ok := tagMap[val.Category]; ok { |
40 | m = append(m, types.ArticleTagItem{ | 40 | m = append(m, types.ArticleTagItem{ |
41 | - Id: val.Id, | ||
42 | - Group: val.Category, | ||
43 | - Name: val.Name, | ||
44 | - Image: val.Image.Url, | 41 | + Id: val.Id, |
42 | + Category: val.Category, | ||
43 | + Name: val.Name, | ||
44 | + Image: val.Image.Url, | ||
45 | }) | 45 | }) |
46 | tagMap[val.Category] = m | 46 | tagMap[val.Category] = m |
47 | } else { | 47 | } else { |
48 | group = append(group, val.Category) | 48 | group = append(group, val.Category) |
49 | tagMap[val.Category] = []types.ArticleTagItem{ | 49 | tagMap[val.Category] = []types.ArticleTagItem{ |
50 | { | 50 | { |
51 | - Id: val.Id, | ||
52 | - Group: val.Category, | ||
53 | - Name: val.Name, | ||
54 | - Image: val.Image.Url, | 51 | + Id: val.Id, |
52 | + Category: val.Category, | ||
53 | + Name: val.Name, | ||
54 | + Image: val.Image.Url, | ||
55 | }, | 55 | }, |
56 | } | 56 | } |
57 | } | 57 | } |
@@ -61,8 +61,8 @@ func (l *MiniAllArticleTagLogic) MiniAllArticleTag(req *types.MiniAllArticleTagR | @@ -61,8 +61,8 @@ func (l *MiniAllArticleTagLogic) MiniAllArticleTag(req *types.MiniAllArticleTagR | ||
61 | } | 61 | } |
62 | for i := range group { | 62 | for i := range group { |
63 | resp.TagGroup = append(resp.TagGroup, types.ArticleTagGroup{ | 63 | resp.TagGroup = append(resp.TagGroup, types.ArticleTagGroup{ |
64 | - Group: group[i], | ||
65 | - Tags: tagMap[group[i]], | 64 | + Category: group[i], |
65 | + Tags: tagMap[group[i]], | ||
66 | }) | 66 | }) |
67 | } | 67 | } |
68 | return resp, nil | 68 | return resp, nil |
@@ -5,7 +5,10 @@ import ( | @@ -5,7 +5,10 @@ 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/cmd/discuss/interanl/pkg/domain" | ||
9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
8 | 10 | ||
11 | + "github.com/samber/lo" | ||
9 | "github.com/zeromicro/go-zero/core/logx" | 12 | "github.com/zeromicro/go-zero/core/logx" |
10 | ) | 13 | ) |
11 | 14 | ||
@@ -24,7 +27,46 @@ func NewMiniShowHomePageLogic(ctx context.Context, svcCtx *svc.ServiceContext) * | @@ -24,7 +27,46 @@ func NewMiniShowHomePageLogic(ctx context.Context, svcCtx *svc.ServiceContext) * | ||
24 | } | 27 | } |
25 | 28 | ||
26 | func (l *MiniShowHomePageLogic) MiniShowHomePage(req *types.MiniHomePageRequest) (resp *types.MiniHomePageRespose, err error) { | 29 | func (l *MiniShowHomePageLogic) MiniShowHomePage(req *types.MiniHomePageRequest) (resp *types.MiniHomePageRespose, err error) { |
27 | - // todo: add your logic here and delete this line | 30 | + // 获取所有的标签 |
31 | + var conn = l.svcCtx.DefaultDBConn() | ||
32 | + queryOption := domain.NewQueryOptions().WithFindOnly() | ||
33 | + _, allTags, err := l.svcCtx.ArticleTagRepository.Find(l.ctx, conn, req.CompanyId, queryOption) | ||
34 | + if err != nil { | ||
35 | + return nil, xerr.NewErrMsgErr("获取标签列表失败", err) | ||
36 | + } | ||
37 | + // 获取统计数据 | ||
38 | + countData, err := l.svcCtx.ArticleAndTagRepository.CountArticleReadGroupByTag(l.ctx, conn, req.UserId, req.CompanyId) | ||
39 | + if err != nil { | ||
40 | + return nil, xerr.NewErrMsgErr("获取文章汇总数量失败", err) | ||
41 | + } | ||
42 | + countDataMap := map[int64]*domain.CountArticleTagRead{} | ||
43 | + for _, val := range countData { | ||
44 | + countDataMap[val.TagId] = val | ||
45 | + } | ||
28 | 46 | ||
29 | - return | 47 | + tagCategory := []string{} |
48 | + tagCount := []types.ArticleTagCount{} | ||
49 | + for _, val := range allTags { | ||
50 | + tagCategory = append(tagCategory, val.Category) | ||
51 | + m := types.ArticleTagCount{ | ||
52 | + TagCategory: val.Category, | ||
53 | + TagId: val.Id, | ||
54 | + TagImage: val.Image.Url, | ||
55 | + TagName: val.Name, | ||
56 | + TagRemark: val.Remark, | ||
57 | + TotalArticle: 0, | ||
58 | + ReadArticle: 0, | ||
59 | + } | ||
60 | + if count, ok := countDataMap[val.Id]; ok { | ||
61 | + m.TotalArticle = count.TotalArticle | ||
62 | + m.ReadArticle = count.ReadArticle | ||
63 | + } | ||
64 | + tagCount = append(tagCount, m) | ||
65 | + } | ||
66 | + tagCategory = lo.Uniq(tagCategory) | ||
67 | + resp = &types.MiniHomePageRespose{ | ||
68 | + TagCategory: tagCategory, | ||
69 | + Tags: tagCount, | ||
70 | + } | ||
71 | + return resp, nil | ||
30 | } | 72 | } |
@@ -2,6 +2,7 @@ package article | @@ -2,6 +2,7 @@ package article | ||
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "context" | 4 | "context" |
5 | + | ||
5 | "github.com/samber/lo" | 6 | "github.com/samber/lo" |
6 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" |
7 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | 8 | "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" |
@@ -71,10 +72,10 @@ func (l *SystemGetArticleLogic) SystemGetArticle(req *types.SystemArticleGetRequ | @@ -71,10 +72,10 @@ func (l *SystemGetArticleLogic) SystemGetArticle(req *types.SystemArticleGetRequ | ||
71 | if err == nil && len(tags) > 0 { | 72 | if err == nil && len(tags) > 0 { |
72 | lo.ForEach(tags, func(tag *domain.ArticleTag, index int) { | 73 | lo.ForEach(tags, func(tag *domain.ArticleTag, index int) { |
73 | resp.Tags = append(resp.Tags, types.ArticleTagItem{ | 74 | resp.Tags = append(resp.Tags, types.ArticleTagItem{ |
74 | - Id: tag.Id, | ||
75 | - Group: tag.Category, | ||
76 | - Name: tag.Name, | ||
77 | - Image: tag.Image.Url, | 75 | + Id: tag.Id, |
76 | + Category: tag.Category, | ||
77 | + Name: tag.Name, | ||
78 | + Image: tag.Image.Url, | ||
78 | }) | 79 | }) |
79 | }) | 80 | }) |
80 | } | 81 | } |
@@ -849,15 +849,15 @@ type MiniAllArticleTagResponse struct { | @@ -849,15 +849,15 @@ type MiniAllArticleTagResponse struct { | ||
849 | } | 849 | } |
850 | 850 | ||
851 | type ArticleTagGroup struct { | 851 | type ArticleTagGroup struct { |
852 | - Group string `json:"group"` | ||
853 | - Tags []ArticleTagItem `json:"tags"` | 852 | + Category string `json:"category"` |
853 | + Tags []ArticleTagItem `json:"tags"` | ||
854 | } | 854 | } |
855 | 855 | ||
856 | type ArticleTagItem struct { | 856 | type ArticleTagItem struct { |
857 | - Id int64 `json:"id"` | ||
858 | - Group string `json:"group"` | ||
859 | - Name string `json:"name"` | ||
860 | - Image string `json:"image"` | 857 | + Id int64 `json:"id"` |
858 | + Category string `json:"category"` | ||
859 | + Name string `json:"name"` | ||
860 | + Image string `json:"image"` | ||
861 | } | 861 | } |
862 | 862 | ||
863 | type SystemArticleGetRequest struct { | 863 | type SystemArticleGetRequest struct { |
@@ -999,11 +999,12 @@ type MiniHomePageRequest struct { | @@ -999,11 +999,12 @@ type MiniHomePageRequest struct { | ||
999 | } | 999 | } |
1000 | 1000 | ||
1001 | type MiniHomePageRespose struct { | 1001 | type MiniHomePageRespose struct { |
1002 | - Tags []ArticleTagCount `json:"tags"` | 1002 | + TagCategory []string `json:"tagCategory"` |
1003 | + Tags []ArticleTagCount `json:"tags"` | ||
1003 | } | 1004 | } |
1004 | 1005 | ||
1005 | type ArticleTagCount struct { | 1006 | type ArticleTagCount struct { |
1006 | - TagGroup string `json:"tagGroup"` // 标签分组 | 1007 | + TagCategory string `json:"tagCategory"` // 标签分组 |
1007 | TagId int64 `json:"tagId"` // 标签id | 1008 | TagId int64 `json:"tagId"` // 标签id |
1008 | TagImage string `json:"tagImage"` // 对应的图标 | 1009 | TagImage string `json:"tagImage"` // 对应的图标 |
1009 | TagName string `json:"tagName"` // 标签名称 | 1010 | TagName string `json:"tagName"` // 标签名称 |
@@ -143,17 +143,17 @@ with | @@ -143,17 +143,17 @@ with | ||
143 | -- 获取有标签的文章 | 143 | -- 获取有标签的文章 |
144 | -- 过滤出可展示的文章id | 144 | -- 过滤出可展示的文章id |
145 | t_article_and_tag_2 as ( | 145 | t_article_and_tag_2 as ( |
146 | - select article_and_tag.article_id , article_and_tag.tag_id | 146 | + select article_and_tag.article_id,article_and_tag.tag_id |
147 | from article_and_tag | 147 | from article_and_tag |
148 | join article on article_and_tag.article_id = article.id | 148 | join article on article_and_tag.article_id = article.id |
149 | where article.deleted_at=0 | 149 | where article.deleted_at=0 |
150 | - and article.company_id =1598224576532189184 | 150 | + and article.company_id =? |
151 | and article."show" =0 | 151 | and article."show" =0 |
152 | - and (article.target_user =0 or article.who_read @>'[1]') | 152 | + and (article.target_user =0 or article.who_read @> ?) |
153 | ), | 153 | ), |
154 | -- 查询人员已查看的文章 | 154 | -- 查询人员已查看的文章 |
155 | t_user_read as( | 155 | t_user_read as( |
156 | - select user_read_article.article_id from user_read_article where user_read_article.user_id =1 | 156 | + select user_read_article.article_id from user_read_article where user_read_article.user_id =? |
157 | ) | 157 | ) |
158 | -- 汇总统计 total_article 符合条件的文章总数,read_article 已浏览的数量 | 158 | -- 汇总统计 total_article 符合条件的文章总数,read_article 已浏览的数量 |
159 | select count(t_article_and_tag_2.article_id) as total_article ,count(t_user_read.article_id) as read_article, t_article_and_tag_2.tag_id | 159 | select count(t_article_and_tag_2.article_id) as total_article ,count(t_user_read.article_id) as read_article, t_article_and_tag_2.tag_id |
@@ -175,7 +175,6 @@ group by t_article_and_tag_2.tag_id | @@ -175,7 +175,6 @@ group by t_article_and_tag_2.tag_id | ||
175 | } | 175 | } |
176 | 176 | ||
177 | var dm []*domain.CountArticleTagRead | 177 | var dm []*domain.CountArticleTagRead |
178 | - | ||
179 | for _, val := range m { | 178 | for _, val := range m { |
180 | dm = append(dm, &domain.CountArticleTagRead{ | 179 | dm = append(dm, &domain.CountArticleTagRead{ |
181 | TagId: val.TagId, | 180 | TagId: val.TagId, |
@@ -121,8 +121,7 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti | @@ -121,8 +121,7 @@ func (repository *ArticleTagRepository) Find(ctx context.Context, conn transacti | ||
121 | ) | 121 | ) |
122 | queryFunc := func() (interface{}, error) { | 122 | queryFunc := func() (interface{}, error) { |
123 | tx = tx.Model(&ms). | 123 | tx = tx.Model(&ms). |
124 | - Where("company_id=?", companyId). | ||
125 | - Order("id asc") | 124 | + Where("company_id=?", companyId).Order("sort_by asc").Order("id asc") |
126 | 125 | ||
127 | if v, ok := queryOptions["name"]; ok { | 126 | if v, ok := queryOptions["name"]; ok { |
128 | tx = tx.Where("name like ?", v) | 127 | tx = tx.Where("name like ?", v) |
-
请 注册 或 登录 后发表评论