正在显示
14 个修改的文件
包含
126 行增加
和
55 行删除
| @@ -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; |
-
请 注册 或 登录 后发表评论