作者 yangfu

Merge branch 'dev' into test

@@ -258,7 +258,7 @@ type ( @@ -258,7 +258,7 @@ type (
258 MiniArticleDraftCreateRequest { 258 MiniArticleDraftCreateRequest {
259 CompanyId int64 `json:",optional"` 259 CompanyId int64 `json:",optional"`
260 AuthorId int64 `json:",optional"` // 发布人 260 AuthorId int64 `json:",optional"` // 发布人
261 - Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式 261 + Template int `json:"template"` // 使用哪个模板进行编辑 0、无 5、演绎式 3、归纳式 10、其他业务类型模板
262 Section []string `json:"section"` // 填写的内容 262 Section []string `json:"section"` // 填写的内容
263 Title string `json:"title"` // 标题 263 Title string `json:"title"` // 标题
264 Images []string `json:"images"` // 图片 264 Images []string `json:"images"` // 图片
@@ -319,6 +319,7 @@ type ( @@ -319,6 +319,7 @@ type (
319 Images []string `json:"images"` // 图片 319 Images []string `json:"images"` // 图片
320 CreatedAt int64 `json:"createdAt"`// 320 CreatedAt int64 `json:"createdAt"`//
321 MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本 321 MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本
  322 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
322 } 323 }
323 ) 324 )
324 325
@@ -339,7 +340,8 @@ type ( @@ -339,7 +340,8 @@ type (
339 WhoRead []int64 `json:"whoRead"` // 谁可以看 340 WhoRead []int64 `json:"whoRead"` // 谁可以看
340 WhoReview []int64 `json:"whoReview"` // 评论人 341 WhoReview []int64 `json:"whoReview"` // 评论人
341 Location Location `json:"location"` // 坐标 342 Location Location `json:"location"` // 坐标
342 - MatchUrl map[string]string `json:"matchUrl"` // 343 + MatchUrl map[string]string `json:"matchUrl"` //
  344 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
343 } 345 }
344 ) 346 )
345 347
@@ -681,6 +683,7 @@ type ( @@ -681,6 +683,7 @@ type (
681 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本 683 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
682 Tags []int64 `json:"tags"` // 标签 684 Tags []int64 `json:"tags"` // 标签
683 AccessToken string `header:"x-mmm-accesstoken"` // 授权token 685 AccessToken string `header:"x-mmm-accesstoken"` // 授权token
  686 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
684 } 687 }
685 SystemArticleDraftCreateResponse { 688 SystemArticleDraftCreateResponse {
686 Id int64 `json:"id"` //ID 689 Id int64 `json:"id"` //ID
@@ -712,6 +715,7 @@ type ( @@ -712,6 +715,7 @@ type (
712 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本 715 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
713 Tags []int64 `json:"tags"` // 标签 716 Tags []int64 `json:"tags"` // 标签
714 AccessToken string `header:"x-mmm-accesstoken"` // 授权token 717 AccessToken string `header:"x-mmm-accesstoken"` // 授权token
  718 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
715 } 719 }
716 SystemArticleDraftUpdateResponse { 720 SystemArticleDraftUpdateResponse {
717 Id int64 `json:"id"` //ID 721 Id int64 `json:"id"` //ID
@@ -794,6 +798,7 @@ type ( @@ -794,6 +798,7 @@ type (
794 WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论 798 WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
795 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本 799 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
796 Tags []int64 `json:"tags"` // 标签 800 Tags []int64 `json:"tags"` // 标签
  801 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
797 } 802 }
798 ) 803 )
799 804
@@ -2,6 +2,9 @@ package article @@ -2,6 +2,9 @@ package article
2 2
3 import ( 3 import (
4 "context" 4 "context"
  5 + "github.com/samber/lo"
  6 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/core"
  7 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
5 8
6 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" 9 "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" 10 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types"
@@ -37,10 +40,22 @@ func (l *MiniGetArticleDraftMeLogic) MiniGetArticleDraftMe(req *types.MiniArticl @@ -37,10 +40,22 @@ func (l *MiniGetArticleDraftMeLogic) MiniGetArticleDraftMe(req *types.MiniArticl
37 return nil, xerr.NewErrMsg("获取草稿失败") 40 return nil, xerr.NewErrMsg("获取草稿失败")
38 } 41 }
39 } 42 }
  43 +
  44 + var paragraphs = make([]types.Paragraph, 0)
  45 + lo.ForEach(draftInfo.Section, func(p *domain.ArticleSection, index int) {
  46 + paragraphs = append(paragraphs, core.NewTypesParagraph(p.ParagraphTemplate))
  47 + })
  48 +
  49 + if len(paragraphs) == 0 && len(draftInfo.Content) > 0 {
  50 + lo.ForEach(draftInfo.Content, func(item string, index int) {
  51 + paragraphs = append(paragraphs, core.NewNoneTypesParagraph(item))
  52 + })
  53 + }
  54 +
40 resp = &types.MiniArticleDraftGetMeResponse{ 55 resp = &types.MiniArticleDraftGetMeResponse{
41 - Id: draftInfo.Id,  
42 - Template: draftInfo.Template,  
43 - Section: draftInfo.Content, 56 + Id: draftInfo.Id,
  57 + Template: draftInfo.Template,
  58 + //Section: draftInfo.Content,
44 Title: draftInfo.Title, 59 Title: draftInfo.Title,
45 Images: []string{}, 60 Images: []string{},
46 WhoRead: draftInfo.WhoRead, 61 WhoRead: draftInfo.WhoRead,
@@ -50,7 +65,8 @@ func (l *MiniGetArticleDraftMeLogic) MiniGetArticleDraftMe(req *types.MiniArticl @@ -50,7 +65,8 @@ func (l *MiniGetArticleDraftMeLogic) MiniGetArticleDraftMe(req *types.MiniArticl
50 Latitude: draftInfo.Location.Latitude, 65 Latitude: draftInfo.Location.Latitude,
51 Descript: draftInfo.Location.Descript, 66 Descript: draftInfo.Location.Descript,
52 }, 67 },
53 - MatchUrl: map[string]string{}, 68 + MatchUrl: map[string]string{},
  69 + Paragraphs: paragraphs,
54 } 70 }
55 for k, v := range draftInfo.MatchUrl { 71 for k, v := range draftInfo.MatchUrl {
56 resp.MatchUrl[k] = v 72 resp.MatchUrl[k] = v
@@ -2,6 +2,8 @@ package article @@ -2,6 +2,8 @@ package article
2 2
3 import ( 3 import (
4 "context" 4 "context"
  5 + "github.com/samber/lo"
  6 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/core"
5 7
6 "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"
7 "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"
@@ -45,18 +47,31 @@ func (l *MiniSearchArticleDraftMeLogic) MiniSearchArticleDraftMe(req *types.Mini @@ -45,18 +47,31 @@ func (l *MiniSearchArticleDraftMeLogic) MiniSearchArticleDraftMe(req *types.Mini
45 } 47 }
46 48
47 for i := range draftList { 49 for i := range draftList {
  50 + draftInfo := draftList[i]
  51 + var paragraphs = make([]types.Paragraph, 0)
  52 + lo.ForEach(draftInfo.Section, func(p *domain.ArticleSection, index int) {
  53 + paragraphs = append(paragraphs, core.NewTypesParagraph(p.ParagraphTemplate))
  54 + })
  55 +
  56 + if len(paragraphs) == 0 && len(draftInfo.Content) > 0 {
  57 + lo.ForEach(draftInfo.Content, func(item string, index int) {
  58 + paragraphs = append(paragraphs, core.NewNoneTypesParagraph(item))
  59 + })
  60 + }
  61 +
48 images := []string{} 62 images := []string{}
49 for _, val := range draftList[i].Images { 63 for _, val := range draftList[i].Images {
50 images = append(images, val.Url) 64 images = append(images, val.Url)
51 } 65 }
52 resp.List[i] = types.MiniArticleDraftItem{ 66 resp.List[i] = types.MiniArticleDraftItem{
53 - Id: draftList[i].Id,  
54 - Template: draftList[i].Template,  
55 - Section: draftList[i].Content,  
56 - Title: draftList[i].Title,  
57 - Images: images,  
58 - CreatedAt: draftList[i].CreatedAt,  
59 - MatchUrl: draftList[i].MatchUrl, 67 + Id: draftList[i].Id,
  68 + Template: draftList[i].Template,
  69 + //Section: draftList[i].Content,
  70 + Title: draftList[i].Title,
  71 + Images: images,
  72 + CreatedAt: draftList[i].CreatedAt,
  73 + MatchUrl: draftList[i].MatchUrl,
  74 + Paragraphs: paragraphs,
60 } 75 }
61 } 76 }
62 return resp, nil 77 return resp, nil
@@ -74,7 +74,8 @@ func (l *SystemCreateArticleDraftLogic) SystemCreateArticleDraft(req *types.Syst @@ -74,7 +74,8 @@ func (l *SystemCreateArticleDraftLogic) SystemCreateArticleDraft(req *types.Syst
74 Id: userToken.UserId, 74 Id: userToken.UserId,
75 Name: userMe.User.NickName, 75 Name: userMe.User.NickName,
76 }, 76 },
77 - Tags: req.Tags, 77 + Tags: req.Tags,
  78 + Section: NewArticleSectionFromParagraphs(req.Paragraphs, companyInfo.Id, 0),
78 } 79 }
79 err = transaction.UseTrans(l.ctx, l.conn.DB(), func(ctx context.Context, conn transaction.Conn) error { 80 err = transaction.UseTrans(l.ctx, l.conn.DB(), func(ctx context.Context, conn transaction.Conn) error {
80 _, err := l.svcCtx.ArticleDraftOperationRepository.Insert(ctx, conn, articleDraft) 81 _, err := l.svcCtx.ArticleDraftOperationRepository.Insert(ctx, conn, articleDraft)
@@ -3,6 +3,7 @@ package article @@ -3,6 +3,7 @@ package article
3 import ( 3 import (
4 "context" 4 "context"
5 "github.com/samber/lo" 5 "github.com/samber/lo"
  6 + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/core"
6 "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"
7 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain" 8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
8 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata" 9 "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/contextdata"
@@ -57,6 +58,15 @@ func (l *SystemGetArticleDraftLogic) SystemGetArticleDraft(req *types.SystemArti @@ -57,6 +58,15 @@ func (l *SystemGetArticleDraftLogic) SystemGetArticleDraft(req *types.SystemArti
57 Height: video.Height, 58 Height: video.Height,
58 }) 59 })
59 }) 60 })
  61 +
  62 + var paragraphs = make([]types.Paragraph, 0)
  63 + lo.ForEach(articleDraft.Section, func(p *domain.ArticleSection, index int) {
  64 + paragraphs = append(paragraphs, core.NewTypesParagraph(p.ParagraphTemplate))
  65 + })
  66 +
  67 + if len(paragraphs) == 0 && len(articleDraft.Content) > 0 {
  68 + paragraphs = append(paragraphs, core.NewNoneTypesParagraph(articleDraft.Content))
  69 + }
60 resp = &types.SystemArticleDraftGetResponse{ 70 resp = &types.SystemArticleDraftGetResponse{
61 Id: articleDraft.Id, 71 Id: articleDraft.Id,
62 Title: articleDraft.Title, 72 Title: articleDraft.Title,
@@ -68,6 +68,7 @@ func (l *SystemUpdateArticleDraftLogic) SystemUpdateArticleDraft(req *types.Syst @@ -68,6 +68,7 @@ func (l *SystemUpdateArticleDraftLogic) SystemUpdateArticleDraft(req *types.Syst
68 Id: userToken.UserId, 68 Id: userToken.UserId,
69 Name: userMe.User.NickName, 69 Name: userMe.User.NickName,
70 } 70 }
  71 + articleDraft.Section = NewArticleSectionFromParagraphs(req.Paragraphs, articleDraft.CompanyId, 0)
71 err = transaction.UseTrans(l.ctx, l.conn.DB(), func(ctx context.Context, conn transaction.Conn) error { 72 err = transaction.UseTrans(l.ctx, l.conn.DB(), func(ctx context.Context, conn transaction.Conn) error {
72 _, err := l.svcCtx.ArticleDraftOperationRepository.Update(ctx, conn, articleDraft) 73 _, err := l.svcCtx.ArticleDraftOperationRepository.Update(ctx, conn, articleDraft)
73 if err != nil { 74 if err != nil {
@@ -30,3 +30,14 @@ func NewTypesParagraph(item domain.Paragraph) types.Paragraph { @@ -30,3 +30,14 @@ func NewTypesParagraph(item domain.Paragraph) types.Paragraph {
30 Type: item.Type, 30 Type: item.Type,
31 } 31 }
32 } 32 }
  33 +
  34 +func NewNoneTypesParagraph(item string) types.Paragraph {
  35 + return types.Paragraph{
  36 + ID: "",
  37 + Title: "",
  38 + Prompt: "",
  39 + Required: false,
  40 + Type: 0,
  41 + Text: item,
  42 + }
  43 +}
@@ -1162,7 +1162,7 @@ type MiniArticleMarkUserReadResponse struct { @@ -1162,7 +1162,7 @@ type MiniArticleMarkUserReadResponse struct {
1162 type MiniArticleDraftCreateRequest struct { 1162 type MiniArticleDraftCreateRequest struct {
1163 CompanyId int64 `json:",optional"` 1163 CompanyId int64 `json:",optional"`
1164 AuthorId int64 `json:",optional"` // 发布人 1164 AuthorId int64 `json:",optional"` // 发布人
1165 - Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式 1165 + Template int `json:"template"` // 使用哪个模板进行编辑 0、无 5、演绎式 3、归纳式 10、其他业务类型模板
1166 Section []string `json:"section"` // 填写的内容 1166 Section []string `json:"section"` // 填写的内容
1167 Title string `json:"title"` // 标题 1167 Title string `json:"title"` // 标题
1168 Images []string `json:"images"` // 图片 1168 Images []string `json:"images"` // 图片
@@ -1209,13 +1209,14 @@ type MiniArticleDraftSearchMeResponse struct { @@ -1209,13 +1209,14 @@ type MiniArticleDraftSearchMeResponse struct {
1209 } 1209 }
1210 1210
1211 type MiniArticleDraftItem struct { 1211 type MiniArticleDraftItem struct {
1212 - Id int64 `json:"id"`  
1213 - Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式  
1214 - Section []string `json:"section"` // 填写的内容  
1215 - Title string `json:"title"` // 标题  
1216 - Images []string `json:"images"` // 图片  
1217 - CreatedAt int64 `json:"createdAt"` //  
1218 - MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本 1212 + Id int64 `json:"id"`
  1213 + Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
  1214 + Section []string `json:"section"` // 填写的内容
  1215 + Title string `json:"title"` // 标题
  1216 + Images []string `json:"images"` // 图片
  1217 + CreatedAt int64 `json:"createdAt"` //
  1218 + MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本
  1219 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
1219 } 1220 }
1220 1221
1221 type MiniArticleDraftGetMeRequest struct { 1222 type MiniArticleDraftGetMeRequest struct {
@@ -1225,15 +1226,16 @@ type MiniArticleDraftGetMeRequest struct { @@ -1225,15 +1226,16 @@ type MiniArticleDraftGetMeRequest struct {
1225 } 1226 }
1226 1227
1227 type MiniArticleDraftGetMeResponse struct { 1228 type MiniArticleDraftGetMeResponse struct {
1228 - Id int64 `json:"id"` //  
1229 - Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式  
1230 - Section []string `json:"section"` // 填写的内容  
1231 - Title string `json:"title"` // 标题  
1232 - Images []string `json:"images"` // 图片  
1233 - WhoRead []int64 `json:"whoRead"` // 谁可以看  
1234 - WhoReview []int64 `json:"whoReview"` // 评论人  
1235 - Location Location `json:"location"` // 坐标  
1236 - MatchUrl map[string]string `json:"matchUrl"` // 1229 + Id int64 `json:"id"` //
  1230 + Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
  1231 + Section []string `json:"section"` // 填写的内容
  1232 + Title string `json:"title"` // 标题
  1233 + Images []string `json:"images"` // 图片
  1234 + WhoRead []int64 `json:"whoRead"` // 谁可以看
  1235 + WhoReview []int64 `json:"whoReview"` // 评论人
  1236 + Location Location `json:"location"` // 坐标
  1237 + MatchUrl map[string]string `json:"matchUrl"` //
  1238 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
1237 } 1239 }
1238 1240
1239 type MiniArticleDraftDeleteMeRequest struct { 1241 type MiniArticleDraftDeleteMeRequest struct {
@@ -1547,6 +1549,7 @@ type SystemArticleDraftCreateRequest struct { @@ -1547,6 +1549,7 @@ type SystemArticleDraftCreateRequest struct {
1547 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本 1549 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
1548 Tags []int64 `json:"tags"` // 标签 1550 Tags []int64 `json:"tags"` // 标签
1549 AccessToken string `header:"x-mmm-accesstoken"` // 授权token 1551 AccessToken string `header:"x-mmm-accesstoken"` // 授权token
  1552 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
1550 } 1553 }
1551 1554
1552 type SystemArticleDraftCreateResponse struct { 1555 type SystemArticleDraftCreateResponse struct {
@@ -1576,6 +1579,7 @@ type SystemArticleDraftUpdateRequest struct { @@ -1576,6 +1579,7 @@ type SystemArticleDraftUpdateRequest struct {
1576 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本 1579 MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
1577 Tags []int64 `json:"tags"` // 标签 1580 Tags []int64 `json:"tags"` // 标签
1578 AccessToken string `header:"x-mmm-accesstoken"` // 授权token 1581 AccessToken string `header:"x-mmm-accesstoken"` // 授权token
  1582 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
1579 } 1583 }
1580 1584
1581 type SystemArticleDraftUpdateResponse struct { 1585 type SystemArticleDraftUpdateResponse struct {
@@ -1641,19 +1645,20 @@ type SystemArticleDraftGetRequest struct { @@ -1641,19 +1645,20 @@ type SystemArticleDraftGetRequest struct {
1641 } 1645 }
1642 1646
1643 type SystemArticleDraftGetResponse struct { 1647 type SystemArticleDraftGetResponse struct {
1644 - Id int64 `json:"id"` //ID  
1645 - Title string `json:"title"` //标题  
1646 - Content string `json:"content"` //文章的文本内容  
1647 - AuthorId int64 `json:"authorId"` //发布人id  
1648 - Images []string `json:"images,optional"` //图片  
1649 - Videos []Video `json:"video,optional"` // 视频  
1650 - TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]  
1651 - WhoRead []int64 `json:"whoRead,optional"` //谁可查看  
1652 - WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看  
1653 - WhoReview []int64 `json:"whoReview,optional"` //谁可评论  
1654 - WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论  
1655 - MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本  
1656 - Tags []int64 `json:"tags"` // 标签 1648 + Id int64 `json:"id"` //ID
  1649 + Title string `json:"title"` //标题
  1650 + Content string `json:"content"` //文章的文本内容
  1651 + AuthorId int64 `json:"authorId"` //发布人id
  1652 + Images []string `json:"images,optional"` //图片
  1653 + Videos []Video `json:"video,optional"` // 视频
  1654 + TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
  1655 + WhoRead []int64 `json:"whoRead,optional"` //谁可查看
  1656 + WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
  1657 + WhoReview []int64 `json:"whoReview,optional"` //谁可评论
  1658 + WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
  1659 + MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
  1660 + Tags []int64 `json:"tags"` // 标签
  1661 + Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
1657 } 1662 }
1658 1663
1659 type SystemArticleSearchDeletedRequest struct { 1664 type SystemArticleSearchDeletedRequest struct {
@@ -27,7 +27,7 @@ type ArticleDraft struct { @@ -27,7 +27,7 @@ type ArticleDraft struct {
27 Location domain.Location `gorm:"type:jsonb;serializer:json"` // 坐标 27 Location domain.Location `gorm:"type:jsonb;serializer:json"` // 坐标
28 MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本 28 MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
29 29
30 - Section []domain.ArticleSection `gorm:"type:jsonb;serializer:json"` 30 + Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"`
31 } 31 }
32 32
33 func (m *ArticleDraft) TableName() string { 33 func (m *ArticleDraft) TableName() string {
@@ -29,6 +29,8 @@ type ArticleDraftOperation struct { @@ -29,6 +29,8 @@ type ArticleDraftOperation struct {
29 UpdatedAt int64 `gorm:"comment:编辑时间"` // 编辑时间 29 UpdatedAt int64 `gorm:"comment:编辑时间"` // 编辑时间
30 IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"` // 删除标记 30 IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"` // 删除标记
31 DeletedAt int64 `gorm:"comment:删除时间"` // 删除时间 31 DeletedAt int64 `gorm:"comment:删除时间"` // 删除时间
  32 +
  33 + Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"` // 分段内容
32 } 34 }
33 35
34 func (m *ArticleDraftOperation) TableName() string { 36 func (m *ArticleDraftOperation) TableName() string {
@@ -161,6 +161,7 @@ func (repository *ArticleDraftRepository) ModelToDomainModel(from *models.Articl @@ -161,6 +161,7 @@ func (repository *ArticleDraftRepository) ModelToDomainModel(from *models.Articl
161 WhoReview: from.WhoReview, 161 WhoReview: from.WhoReview,
162 Location: from.Location, 162 Location: from.Location,
163 MatchUrl: from.MatchUrl, 163 MatchUrl: from.MatchUrl,
  164 + Section: from.Section,
164 } 165 }
165 // err := copier.Copy(to, from) 166 // err := copier.Copy(to, from)
166 return to, nil 167 return to, nil
@@ -183,6 +184,7 @@ func (repository *ArticleDraftRepository) DomainModelToModel(from *domain.Articl @@ -183,6 +184,7 @@ func (repository *ArticleDraftRepository) DomainModelToModel(from *domain.Articl
183 WhoReview: from.WhoReview, 184 WhoReview: from.WhoReview,
184 Location: from.Location, 185 Location: from.Location,
185 MatchUrl: from.MatchUrl, 186 MatchUrl: from.MatchUrl,
  187 + Section: from.Section,
186 } 188 }
187 // err := copier.Copy(to, from) 189 // err := copier.Copy(to, from)
188 return to, nil 190 return to, nil
@@ -27,6 +27,7 @@ type ArticleDraftOperation struct { @@ -27,6 +27,7 @@ type ArticleDraftOperation struct {
27 UpdatedAt int64 `json:"updatedAt,omitempty"` // 编辑时间 27 UpdatedAt int64 `json:"updatedAt,omitempty"` // 编辑时间
28 IsDel soft_delete.DeletedAt `json:"isDel,omitempty"` // 删除标记 28 IsDel soft_delete.DeletedAt `json:"isDel,omitempty"` // 删除标记
29 DeletedAt int64 `json:"deletedAt,omitempty"` // 删除时间 29 DeletedAt int64 `json:"deletedAt,omitempty"` // 删除时间
  30 + Section []*ArticleSection `json:"section"` // 分段内容
30 } 31 }
31 32
32 type ArticleDraftOperationRepository interface { 33 type ArticleDraftOperationRepository interface {
@@ -8,19 +8,19 @@ import ( @@ -8,19 +8,19 @@ import (
8 8
9 // 文章段落内容 9 // 文章段落内容
10 type ArticleSection struct { 10 type ArticleSection struct {
11 - Id int64 `json:"id"`  
12 - CompanyId int64 `json:"companyId"` 11 + Id int64 `json:"id,omitempty"`
  12 + CompanyId int64 `json:"companyId,omitempty"`
13 CreatedAt int64 `json:"createdAt,omitempty"` 13 CreatedAt int64 `json:"createdAt,omitempty"`
14 UpdatedAt int64 `json:"updatedAt,omitempty"` 14 UpdatedAt int64 `json:"updatedAt,omitempty"`
15 DeletedAt int64 `json:"deletedAt,omitempty"` 15 DeletedAt int64 `json:"deletedAt,omitempty"`
16 Version int `json:"version,omitempty"` 16 Version int `json:"version,omitempty"`
17 - ArticleId int64 `json:"articleId"` // 文章id  
18 - Content string `json:"content"` // 文本内容  
19 - SortBy int `json:"sortBy"` // 排序  
20 - TotalComment int `json:"totalComment"` // 评论的数量  
21 - Images []string `json:"images"` // 照片列表  
22 - ParagraphType int `json:"paragraphType"` // 段落类型 1:文本 2:图片  
23 - ParagraphTemplate Paragraph `json:"paragraphTemplate"` // 段落模板 17 + ArticleId int64 `json:"articleId,omitempty"` // 文章id
  18 + Content string `json:"content,omitempty"` // 文本内容
  19 + SortBy int `json:"sortBy,omitempty"` // 排序
  20 + TotalComment int `json:"totalComment,omitempty"` // 评论的数量
  21 + Images []string `json:"images,omitempty"` // 照片列表
  22 + ParagraphType int `json:"paragraphType,omitempty"` // 段落类型 1:文本 2:图片
  23 + ParagraphTemplate Paragraph `json:"paragraphTemplate,omitempty"` // 段落模板
24 } 24 }
25 25
26 type ArticleSectionRepository interface { 26 type ArticleSectionRepository interface {
@@ -3,4 +3,6 @@ alter table article_draft add column section jsonb; @@ -3,4 +3,6 @@ alter table article_draft add column section jsonb;
3 alter table article_section add column paragraph_template jsonb; 3 alter table article_section add column paragraph_template jsonb;
4 alter table article_section add column paragraph_type int8; 4 alter table article_section add column paragraph_type int8;
5 alter table article_section add column images jsonb; 5 alter table article_section add column images jsonb;
6 -update article_section set paragraph_type = 0;  
  6 +update article_section set paragraph_type = 0;
  7 +
  8 +alter table article_draft_operation add column section jsonb;