作者 yangfu

feat: 附件

正在显示 37 个修改的文件 包含 589 行增加452 行删除
... ... @@ -56,7 +56,7 @@ func main() {
}
// 服务启动
logx.Infof("Starting server at %s:%d... \n", c.Host, c.Port)
logx.Infof("Starting server version 1.0.4 at %s:%d... \n", c.Host, c.Port)
server.Start()
}
... ...
... ... @@ -41,12 +41,16 @@ type (
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
Location Location `json:"location,optional"` //定位坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
MiniArticleCreateResponse {
Id int64 `json:"id"`
}
FileInfo struct {
Name string `json:"name"`
Url string `json:"url"`
}
)
//小程序端查看文章的详情
... ... @@ -77,7 +81,8 @@ type (
MeFollowFlag int `json:"meFollowFlag"` // 当前人员对作者的关注标识 (0 没有关注 1有关注)
Tags []string `json:"tags"` // 文章的标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Cover string `json:"cover"` //封面
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
ArticleSection {
Id int64 `json:"id"` //段落id
... ... @@ -118,6 +123,7 @@ type (
IsDel int `json:"isDel"` //是否删除 1-删除 0-否
DeletedType int `json:"deletedType"` //类型 1-运营删除 2-用户删除
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
SystemArticleSearchMeRequest {
... ... @@ -219,6 +225,7 @@ type (
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -239,6 +246,7 @@ type (
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -272,6 +280,7 @@ type (
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
MiniArticleDraftCreateResponse {
... ... @@ -293,7 +302,7 @@ type (
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
... ... @@ -325,6 +334,7 @@ type (
MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -348,6 +358,7 @@ type (
MatchUrl map[string]string `json:"matchUrl"` //
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -454,6 +465,7 @@ type (
Tags []ArticleTagItem `json:"tags"` //标签
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -491,6 +503,7 @@ type (
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Operator Operator `json:"operator"` //运营操作人
Source int `json:"source"` //来源[1用户发布、2运营发布]
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
// 管理后台编辑文章
... ... @@ -509,6 +522,7 @@ type (
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
SystemArticleUpdateResponse {
Id int64 `json:"id"` //id
... ... @@ -538,7 +552,7 @@ type (
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
ArticleDraftId int64 `json:"articleDraftId"` // 草稿ID
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
SystemArticleCreateResponse {
... ... @@ -610,6 +624,7 @@ type (
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
// 管理后台文章恢复
... ... @@ -676,6 +691,7 @@ type (
CreatedAt int64 `json:"createdAt"`
MeReadFlag int `json:"meReadFlag"` //已读标识 [0:未读] [1:已读]
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -694,6 +710,7 @@ type (
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
SystemArticleDraftCreateResponse {
Id int64 `json:"id"` //ID
... ... @@ -726,6 +743,7 @@ type (
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
SystemArticleDraftUpdateResponse {
Id int64 `json:"id"` //ID
... ... @@ -766,6 +784,7 @@ type (
Author string `json:"author"` //发布人
UpdatedAt int64 `json:"updatedAt"` //编辑时间
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ... @@ -811,6 +830,7 @@ type (
Tags []int64 `json:"tags"` // 标签
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
)
... ...
... ... @@ -237,6 +237,7 @@ type(
Images []string `json:"images"` // 图片列表
Author UserItem `json:"author"` // 作者
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
MiniUserFollowedSearchRequest{
Page int `json:"page,optional"`
... ...
... ... @@ -77,6 +77,7 @@ func (l *MiniArticleBackupSearchLogic) MiniArticleBackupSearch(req *types.MiniAr
Action: backupList[i].Action,
Show: int(backupList[i].Show),
Cover: backupList[i].GetCover(),
Attachments: NewTypesAttachments(backupList[i].Attachments),
}
//根据修改的内容替换展示内容
changeFiled := []string{}
... ...
... ... @@ -56,6 +56,7 @@ func NewArticle(article *domain.Article) types.ArticleSearchMe {
Id: article.Id,
Title: article.Title,
Images: article.GetImages(),
Attachments: NewTypesAttachments(article.Attachments),
CreatedAt: article.CreatedAt,
CountLove: article.CountLove,
CountComment: article.CountComment,
... ...
... ... @@ -35,19 +35,20 @@ func (l *MiniCreateArticleDraftLogic) MiniCreateArticleDraft(req *types.MiniArti
}
newDraft := domain.ArticleDraft{
Id: 0,
CompanyId: req.CompanyId,
CreatedAt: 0,
UpdatedAt: 0,
DeletedAt: 0,
Version: 0,
Template: req.Template,
Content: req.Section,
AuthorId: req.AuthorId,
Title: req.Title,
Images: []domain.Image{},
WhoRead: req.WhoRead,
WhoReview: req.WhoReview,
Id: 0,
CompanyId: req.CompanyId,
CreatedAt: 0,
UpdatedAt: 0,
DeletedAt: 0,
Version: 0,
Template: req.Template,
Content: req.Section,
AuthorId: req.AuthorId,
Title: req.Title,
Images: []domain.Image{},
Attachments: NewDomainAttachments(req.Attachments),
WhoRead: req.WhoRead,
WhoReview: req.WhoReview,
Location: domain.Location{
Longitude: req.Location.Longitude,
Latitude: req.Location.Latitude,
... ...
... ... @@ -344,14 +344,15 @@ func (l *MiniCreateArticleLogic) MiniCreateArticleBak(req *types.MiniArticleCrea
}
newArticle := &domain.Article{
Id: 0,
CompanyId: author.CompanyId,
AuthorId: author.Id,
Author: articleAuthor,
Title: req.Title,
Images: images,
WhoRead: whoRead,
WhoReview: whoReview,
Id: 0,
CompanyId: author.CompanyId,
AuthorId: author.Id,
Author: articleAuthor,
Title: req.Title,
Images: images,
Attachments: NewDomainAttachments(req.Attachments),
WhoRead: whoRead,
WhoReview: whoReview,
Location: domain.Location{
Longitude: req.Location.Longitude,
Latitude: req.Location.Latitude,
... ... @@ -439,3 +440,25 @@ func (l *MiniCreateArticleLogic) validateTextLimit(req *types.MiniArticleCreateR
}
return nil
}
func NewDomainAttachments(from []types.FileInfo) []domain.FileInfo {
var to = make([]domain.FileInfo, 0)
lo.ForEach(from, func(item types.FileInfo, index int) {
to = append(to, domain.FileInfo{
Name: item.Name,
Url: item.Url,
})
})
return to
}
func NewTypesAttachments(from []domain.FileInfo) []types.FileInfo {
var to = make([]types.FileInfo, 0)
lo.ForEach(from, func(item domain.FileInfo, index int) {
to = append(to, types.FileInfo{
Name: item.Name,
Url: item.Url,
})
})
return to
}
... ...
... ... @@ -53,12 +53,13 @@ func (l *MiniGetArticleBackupLogic) MiniGetArticleBackup(req *types.MiniGetArtic
}
resp = &types.MiniGetArticleBackupResponse{
Id: backupInfo.Id,
Title: backupInfo.Title,
Content: content.String(),
Images: images,
Videos: videos,
CreatedAt: backupInfo.CreatedAt,
Id: backupInfo.Id,
Title: backupInfo.Title,
Content: content.String(),
Images: images,
Attachments: NewTypesAttachments(backupInfo.Attachments),
Videos: videos,
CreatedAt: backupInfo.CreatedAt,
Location: types.Location{
Longitude: backupInfo.Location.Longitude,
Latitude: backupInfo.Location.Latitude,
... ...
... ... @@ -59,10 +59,11 @@ func (l *MiniGetArticleDraftMeLogic) MiniGetArticleDraftMe(req *types.MiniArticl
Id: draftInfo.Id,
Template: draftInfo.Template,
//Section: draftInfo.Content,
Title: draftInfo.Title,
Images: []string{},
WhoRead: draftInfo.WhoRead,
WhoReview: draftInfo.WhoReview,
Title: draftInfo.Title,
Images: []string{},
Attachments: NewTypesAttachments(draftInfo.Attachments),
WhoRead: draftInfo.WhoRead,
WhoReview: draftInfo.WhoReview,
Location: types.Location{
Longitude: draftInfo.Location.Longitude,
Latitude: draftInfo.Location.Latitude,
... ...
... ... @@ -127,11 +127,12 @@ func (l *MiniGetArticleLogic) MiniGetArticle(req *types.MiniArticleGetRequest) (
Position: "",
Company: companyInfo.Name,
},
CreatedAt: articleInfo.CreatedAt,
Section: articleSection,
Images: []string{},
WhoRead: articleInfo.WhoRead,
WhoReview: articleInfo.WhoReview,
CreatedAt: articleInfo.CreatedAt,
Section: articleSection,
Images: []string{},
Attachments: NewTypesAttachments(articleInfo.Attachments),
WhoRead: articleInfo.WhoRead,
WhoReview: articleInfo.WhoReview,
Location: types.Location{
Longitude: articleInfo.Location.Longitude,
Latitude: articleInfo.Location.Latitude,
... ...
... ... @@ -70,12 +70,13 @@ func (l *MiniSearchArticleDraftMeLogic) MiniSearchArticleDraftMe(req *types.Mini
Id: draftList[i].Id,
Template: draftList[i].Template,
//Section: draftList[i].Content,
Title: draftList[i].Title,
Images: draftList[i].GetImages(),
CreatedAt: draftList[i].CreatedAt,
MatchUrl: draftList[i].MatchUrl,
Paragraphs: paragraphs,
Cover: draftList[i].GetCover(),
Title: draftList[i].Title,
Images: draftList[i].GetImages(),
CreatedAt: draftList[i].CreatedAt,
MatchUrl: draftList[i].MatchUrl,
Paragraphs: paragraphs,
Cover: draftList[i].GetCover(),
Attachments: NewTypesAttachments(draftList[i].Attachments),
}
}
return resp, nil
... ...
... ... @@ -68,15 +68,16 @@ func (l *MiniSearchArticlePageLogic) MiniSearchArticlePage(req *types.MiniSearch
for i, val := range articleList {
author := l.getAuthor(conn, val.AuthorId)
item := types.MiniSearchArticleItem{
ArticleId: val.Id,
Title: val.Title,
AuthorId: val.AuthorId,
Author: author.Name,
Avatar: author.Avatar,
Images: val.GetImages(),
CreatedAt: val.CreatedAt,
MeReadFlag: 0,
Cover: val.GetCover(),
ArticleId: val.Id,
Title: val.Title,
AuthorId: val.AuthorId,
Author: author.Name,
Avatar: author.Avatar,
Images: val.GetImages(),
Attachments: NewTypesAttachments(val.Attachments),
CreatedAt: val.CreatedAt,
MeReadFlag: 0,
Cover: val.GetCover(),
}
if _, ok := readFlag[val.Id]; ok {
... ...
... ... @@ -58,6 +58,7 @@ func (l *MiniUpdateArticleDraftLogic) MiniUpdateArticleDraft(req *types.MiniArti
Url: val,
})
}
draftInfo.Attachments = NewDomainAttachments(req.Attachments)
draftInfo.MatchUrl = make(map[string]string)
for k, v := range req.MatchUrl {
draftInfo.MatchUrl[k] = v
... ...
... ... @@ -42,6 +42,7 @@ func (l *SystemArticleGetHistoryLogic) SystemArticleGetHistory(req *types.System
CreatedAt: backup.CreatedAt,
Section: make([]types.ArticleSection, 0),
Images: make([]string, 0),
Attachments: NewTypesAttachments(backup.Attachments),
WhoRead: backup.WhoRead,
WhoReadInfo: make([]types.UserShowName, 0),
WhoReview: backup.WhoReview,
... ...
... ... @@ -59,17 +59,18 @@ func (l *SystemCreateArticleDraftLogic) SystemCreateArticleDraft(req *types.Syst
return nil, xerr.NewErrMsgErr("获取当前用户信息失败", err)
}
articleDraft := &domain.ArticleDraftOperation{
CompanyId: companyInfo.Id,
AuthorId: req.AuthorId,
Title: req.Title,
Content: req.Content,
Images: images,
Videos: videos,
TargetUser: domain.ArticleTarget(req.TargetUser),
WhoRead: req.WhoRead,
WhoReview: req.WhoReview,
MatchUrl: req.MatchUrl,
Source: domain.ArticleSourceOperator,
CompanyId: companyInfo.Id,
AuthorId: req.AuthorId,
Title: req.Title,
Content: req.Content,
Images: images,
Attachments: NewDomainAttachments(req.Attachments),
Videos: videos,
TargetUser: domain.ArticleTarget(req.TargetUser),
WhoRead: req.WhoRead,
WhoReview: req.WhoReview,
MatchUrl: req.MatchUrl,
Source: domain.ArticleSourceOperator,
Operator: domain.Operator{
Id: userToken.UserId,
Name: userMe.User.NickName,
... ...
... ... @@ -79,20 +79,21 @@ func (l *SystemCreateArticleLogic) SystemCreateArticle(req *types.SystemArticleC
return nil, xerr.NewErrMsgErr("获取当前用户信息失败", err)
}
article := &domain.Article{
CompanyId: companyInfo.Id,
AuthorId: req.AuthorId,
Author: articleAuthor,
Title: req.Title,
Images: images,
Videos: videos,
WhoRead: make([]int64, 0),
WhoReview: make([]int64, 0),
Location: domain.Location{},
TargetUser: domain.ArticleTarget(req.TargetUser),
Show: domain.ArticleShowEnable,
Tags: make([]int64, 0),
MatchUrl: make(map[string]string),
Source: domain.ArticleSourceOperator,
CompanyId: companyInfo.Id,
AuthorId: req.AuthorId,
Author: articleAuthor,
Title: req.Title,
Images: images,
Attachments: NewDomainAttachments(req.Attachments),
Videos: videos,
WhoRead: make([]int64, 0),
WhoReview: make([]int64, 0),
Location: domain.Location{},
TargetUser: domain.ArticleTarget(req.TargetUser),
Show: domain.ArticleShowEnable,
Tags: make([]int64, 0),
MatchUrl: make(map[string]string),
Source: domain.ArticleSourceOperator,
Operator: domain.Operator{
Id: userToken.UserId,
Name: userMe.User.NickName,
... ...
... ... @@ -73,6 +73,7 @@ func (l *SystemGetArticleDraftLogic) SystemGetArticleDraft(req *types.SystemArti
Content: articleDraft.Content,
AuthorId: articleDraft.AuthorId,
Images: images,
Attachments: NewTypesAttachments(articleDraft.Attachments),
Videos: videos,
TargetUser: int(articleDraft.TargetUser),
WhoRead: articleDraft.WhoRead,
... ...
... ... @@ -52,6 +52,7 @@ func (l *SystemGetArticleLogic) SystemGetArticle(req *types.SystemArticleGetRequ
CreatedAt: article.CreatedAt,
Section: make([]types.ArticleSection, 0),
Images: images,
Attachments: NewTypesAttachments(article.Attachments),
WhoRead: article.WhoRead,
WhoReadInfo: make([]types.UserShowName, 0),
WhoReview: article.WhoReview,
... ...
... ... @@ -65,14 +65,15 @@ func (l *SystemSearchArticleDraftLogic) SystemSearchArticleDraft(req *types.Syst
}
}
resp.List = append(resp.List, types.SystemArticleDraftSearch{
Id: item.Id,
Title: item.Title,
Images: item.GetImages(),
Operator: item.Operator.Name,
AuthorId: item.AuthorId,
Author: author,
UpdatedAt: item.UpdatedAt,
Cover: item.GetCover(),
Id: item.Id,
Title: item.Title,
Images: item.GetImages(),
Operator: item.Operator.Name,
AuthorId: item.AuthorId,
Author: author,
UpdatedAt: item.UpdatedAt,
Cover: item.GetCover(),
Attachments: NewTypesAttachments(item.Attachments),
})
})
return
... ...
... ... @@ -88,7 +88,8 @@ func (l *SystemSearchArticleLogic) SystemSearchArticle(req *types.SystemArticleS
Id: item.Operator.Id,
Name: item.Operator.Name,
},
Cover: item.GetCover(),
Cover: item.GetCover(),
Attachments: NewTypesAttachments(item.Attachments),
})
})
return
... ...
... ... @@ -51,6 +51,7 @@ func (l *SystemUpdateArticleDraftLogic) SystemUpdateArticleDraft(req *types.Syst
return nil, xerr.NewErrMsg(err.Error())
}
articleDraft.Images = images
articleDraft.Attachments = NewDomainAttachments(req.Attachments)
//视频
videos, err := getVideos(req.Videos)
if err != nil {
... ...
... ... @@ -112,6 +112,7 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU
article.Title = req.Title
article.Version = article.Version + 1
article.Images = images
article.Attachments = NewDomainAttachments(req.Attachments)
article.Videos = videos
article.WhoRead = whoRead
article.WhoReview = whoReview
... ...
... ... @@ -57,14 +57,15 @@ func (l *MiniUserNewsLogic) MiniUserNews(req *types.MiniUserNewsRequest) (resp *
})
lo.ForEach(articles, func(item *domain.Article, index int) {
newsItem := types.UserNewsItem{
NewsId: item.Id,
Type: "article",
Title: item.Title,
Summary: item.Summary,
Time: item.CreatedAt,
Images: item.GetImages(),
ReadFlag: false,
Cover: item.GetCover(),
NewsId: item.Id,
Type: "article",
Title: item.Title,
Summary: item.Summary,
Time: item.CreatedAt,
Images: item.GetImages(),
Attachments: types.NewTypesAttachments(item.Attachments),
ReadFlag: false,
Cover: item.GetCover(),
}
if author, _ := domain.LazyLoad(userMap, l.ctx, conn, item.AuthorId, l.svcCtx.UserRepository.FindOne); author != nil {
newsItem.Author = types.UserItem{
... ...
package types
import (
"github.com/samber/lo"
"gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/interanl/pkg/domain"
)
func NewDomainAttachments(from []FileInfo) []domain.FileInfo {
var to = make([]domain.FileInfo, 0)
lo.ForEach(from, func(item FileInfo, index int) {
to = append(to, domain.FileInfo{
Name: item.Name,
Url: item.Url,
})
})
return to
}
func NewTypesAttachments(from []domain.FileInfo) []FileInfo {
var to = make([]FileInfo, 0)
lo.ForEach(from, func(item domain.FileInfo, index int) {
to = append(to, FileInfo{
Name: item.Name,
Url: item.Url,
})
})
return to
}
... ...
... ... @@ -599,15 +599,16 @@ type MiniUserNewsResposne struct {
}
type UserNewsItem struct {
NewsId int64 `json:"newsId"` // 快讯ID
Type string `json:"type"` // 快讯类型 文章:Article 讨论:Discuss ...
Title string `json:"title"` // 标题
Summary string `json:"summary"` // 快讯概要
Time int64 `json:"time"` // 时间
ReadFlag bool `json:"readFlag"` // 已读标识 true:已读 false:未读
Images []string `json:"images"` // 图片列表
Author UserItem `json:"author"` // 作者
Cover string `json:"cover"` //封面
NewsId int64 `json:"newsId"` // 快讯ID
Type string `json:"type"` // 快讯类型 文章:Article 讨论:Discuss ...
Title string `json:"title"` // 标题
Summary string `json:"summary"` // 快讯概要
Time int64 `json:"time"` // 时间
ReadFlag bool `json:"readFlag"` // 已读标识 true:已读 false:未读
Images []string `json:"images"` // 图片列表
Author UserItem `json:"author"` // 作者
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniUserFollowedSearchRequest struct {
... ... @@ -959,21 +960,27 @@ type Operator struct {
}
type MiniArticleCreateRequest struct {
Title string `json:"title"` //标题
Section []string `json:"section,optional"` //文章的文本内容
AuthorId int64 `json:"authorId,optional"` //发布人id
Images []string `json:"images,optional"` //图片
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
Location Location `json:"location,optional"` //定位坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Title string `json:"title"` //标题
Section []string `json:"section,optional"` //文章的文本内容
AuthorId int64 `json:"authorId,optional"` //发布人id
Images []string `json:"images,optional"` //图片
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
Location Location `json:"location,optional"` //定位坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
type MiniArticleCreateResponse struct {
Id int64 `json:"id"`
}
type FileInfo struct {
Name string `json:"name"`
Url string `json:"url"`
}
type MiniArticleGetRequest struct {
Id int64 `path:"id"` //id
CompanyId int64 `path:",optional"` //当前公司
... ... @@ -981,27 +988,28 @@ type MiniArticleGetRequest struct {
}
type MiniArticleGetResponse struct {
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
AuthorId int64 `json:"authorId"` //发布人id
Author ArticleAuthor `json:"author"` //发布人
CreatedAt int64 `json:"createdAt"` //文章的发布时间
Section []ArticleSection `json:"section"` //文章的文本内容
Images []string `json:"images"` //图片
Videos []Video `json:"videos"` //视频
WhoRead []int64 `json:"whoRead"` //谁可查看
WhoReview []int64 `json:"whoReview"` //谁可评论
Location Location `json:"location"` //定位坐标
CountLove int `json:"countLove"` // 点赞数量
CountComment int `json:"countComment"` // 评论数量
CountRead int `json:"countRead"` // 浏览数量
Show int `json:"show"` // 评论的展示状态(1显示、2不显示)
Edit int `json:"edit"` // 文章是否存在变更记录 (0 不存在 1存在)
MeLoveFlag int `json:"meLoveFlag"` // 当前人员对文章的点赞标识 (0 没有点赞 1有点赞)
MeFollowFlag int `json:"meFollowFlag"` // 当前人员对作者的关注标识 (0 没有关注 1有关注)
Tags []string `json:"tags"` // 文章的标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Cover string `json:"cover"` //封面
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
AuthorId int64 `json:"authorId"` //发布人id
Author ArticleAuthor `json:"author"` //发布人
CreatedAt int64 `json:"createdAt"` //文章的发布时间
Section []ArticleSection `json:"section"` //文章的文本内容
Images []string `json:"images"` //图片
Videos []Video `json:"videos"` //视频
WhoRead []int64 `json:"whoRead"` //谁可查看
WhoReview []int64 `json:"whoReview"` //谁可评论
Location Location `json:"location"` //定位坐标
CountLove int `json:"countLove"` // 点赞数量
CountComment int `json:"countComment"` // 评论数量
CountRead int `json:"countRead"` // 浏览数量
Show int `json:"show"` // 评论的展示状态(1显示、2不显示)
Edit int `json:"edit"` // 文章是否存在变更记录 (0 不存在 1存在)
MeLoveFlag int `json:"meLoveFlag"` // 当前人员对文章的点赞标识 (0 没有点赞 1有点赞)
MeFollowFlag int `json:"meFollowFlag"` // 当前人员对作者的关注标识 (0 没有关注 1有关注)
Tags []string `json:"tags"` // 文章的标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type ArticleSection struct {
... ... @@ -1027,19 +1035,20 @@ type MiniArticleSearchMeResponse struct {
}
type ArticleSearchMe struct {
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
Images []string `json:"images"` //图片
CreatedAt int64 `json:"createdAt"` //文章的创建日期
CountLove int `json:"countLove"` //点赞数量
CountComment int `json:"countComment"` //评论数量
CountRead int `json:"countRead"` //浏览数量
Show int `json:"show"` //是否隐藏 [0显示、1不显示]
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead"` //谁可查看
IsDel int `json:"isDel"` //是否删除 1-删除 0-否
DeletedType int `json:"deletedType"` //类型 1-运营删除 2-用户删除
Cover string `json:"cover"` //封面
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
Images []string `json:"images"` //图片
CreatedAt int64 `json:"createdAt"` //文章的创建日期
CountLove int `json:"countLove"` //点赞数量
CountComment int `json:"countComment"` //评论数量
CountRead int `json:"countRead"` //浏览数量
Show int `json:"show"` //是否隐藏 [0显示、1不显示]
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead"` //谁可查看
IsDel int `json:"isDel"` //是否删除 1-删除 0-否
DeletedType int `json:"deletedType"` //类型 1-运营删除 2-用户删除
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleSearchMeRequest struct {
... ... @@ -1122,17 +1131,18 @@ type MiniArticleBackupSearchResponse struct {
}
type MiniArticleBackupItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Images []string `json:"images"`
Videos []Video `json:"videos"`
ChangeField []string `json:"changeField"`
CreatedAt int64 `json:"createdAt"`
Location Location `json:"location"`
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Id int64 `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Images []string `json:"images"`
Videos []Video `json:"videos"`
ChangeField []string `json:"changeField"`
CreatedAt int64 `json:"createdAt"`
Location Location `json:"location"`
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniGetArticleBackupRequest struct {
... ... @@ -1141,17 +1151,18 @@ type MiniGetArticleBackupRequest struct {
}
type MiniGetArticleBackupResponse struct {
Id int64 `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Images []string `json:"images"`
Videos []Video `json:"videos"`
ChangeField []string `json:"changeField"`
CreatedAt int64 `json:"createdAt"`
Location Location `json:"location"`
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Id int64 `json:"id"`
Title string `json:"title"`
Content string `json:"content"`
Images []string `json:"images"`
Videos []Video `json:"videos"`
ChangeField []string `json:"changeField"`
CreatedAt int64 `json:"createdAt"`
Location Location `json:"location"`
Action string `json:"action"`
Show int `json:"show"`
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniArticleMarkUserReadRequest struct {
... ... @@ -1165,17 +1176,18 @@ type MiniArticleMarkUserReadResponse struct {
}
type MiniArticleDraftCreateRequest struct {
CompanyId int64 `json:",optional"`
AuthorId int64 `json:",optional"` // 发布人
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 5、演绎式 3、归纳式 10、其他业务类型模板
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
CompanyId int64 `json:",optional"`
AuthorId int64 `json:",optional"` // 发布人
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 5、演绎式 3、归纳式 10、其他业务类型模板
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniArticleDraftCreateResponse struct {
... ... @@ -1183,18 +1195,19 @@ type MiniArticleDraftCreateResponse struct {
}
type MiniArticleDraftUpdateRequest struct {
Id int64 `json:"id"`
CompanyId int64 `json:",optional"`
AuthorId int64 `json:",optional"` // 发布人
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Id int64 `json:"id"`
CompanyId int64 `json:",optional"`
AuthorId int64 `json:",optional"` // 发布人
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
type MiniArticleDraftUpdateResponse struct {
... ... @@ -1214,15 +1227,16 @@ type MiniArticleDraftSearchMeResponse struct {
}
type MiniArticleDraftItem struct {
Id int64 `json:"id"`
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
CreatedAt int64 `json:"createdAt"` //
MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Id int64 `json:"id"`
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
CreatedAt int64 `json:"createdAt"` //
MatchUrl map[string]string `json:"matchUrl"` //匹配内容中的url文本
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniArticleDraftGetMeRequest struct {
... ... @@ -1232,17 +1246,18 @@ type MiniArticleDraftGetMeRequest struct {
}
type MiniArticleDraftGetMeResponse struct {
Id int64 `json:"id"` //
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` //
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Id int64 `json:"id"` //
Template int `json:"template"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []string `json:"section"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` //
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type MiniArticleDraftDeleteMeRequest struct {
... ... @@ -1319,26 +1334,27 @@ type UserShowName struct {
}
type SystemArticleGetResponse struct {
Id int64 `json:"id"` // id
Title string `json:"title"` // 标题
AuthorId int64 `json:"authorId"` // 发布人id
Author ArticleAuthor `json:"author"` // 发布人
CreatedAt int64 `json:"createdAt"` // 文章的发布时间
Section []ArticleSection `json:"section"` // 文章的文本内容
Images []string `json:"images"` // 图片
Videos []Video `json:"videos"` // 视频
WhoRead []int64 `json:"whoRead"` // 谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview"` // 谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
Location Location `json:"location"` // 定位坐标
CountLove int `json:"countLove"` // 点赞数量
CountComment int `json:"countComment"` // 评论数量
CountRead int `json:"countRead"` // 浏览数量
Show int `json:"show"` // 评论的展示状态(0显示、1不显示)
Tags []ArticleTagItem `json:"tags"` //标签
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Cover string `json:"cover"` //封面
Id int64 `json:"id"` // id
Title string `json:"title"` // 标题
AuthorId int64 `json:"authorId"` // 发布人id
Author ArticleAuthor `json:"author"` // 发布人
CreatedAt int64 `json:"createdAt"` // 文章的发布时间
Section []ArticleSection `json:"section"` // 文章的文本内容
Images []string `json:"images"` // 图片
Videos []Video `json:"videos"` // 视频
WhoRead []int64 `json:"whoRead"` // 谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview"` // 谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
Location Location `json:"location"` // 定位坐标
CountLove int `json:"countLove"` // 点赞数量
CountComment int `json:"countComment"` // 评论数量
CountRead int `json:"countRead"` // 浏览数量
Show int `json:"show"` // 评论的展示状态(0显示、1不显示)
Tags []ArticleTagItem `json:"tags"` //标签
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleSearchRequest struct {
... ... @@ -1359,36 +1375,38 @@ type SystemArticleSearchResponse struct {
}
type SystemArticleSearch struct {
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
AuthorId int64 `json:"authorId"` //发布人ID
Author string `json:"author"` //发布人
Cover string `json:"cover"` //封面
Images []string `json:"images"` //图片
CreatedAt int64 `json:"createdAt"` //文章的创建日期
UpdatedAt int64 `json:"updatedAt"` //文章的编辑日期
CountLove int `json:"countLove"` //点赞数量
CountComment int `json:"countComment"` //评论数量
Show int `json:"show"` //是否隐藏 [0显示、1不显示]
Tags []string `json:"tags"` //标签
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Operator Operator `json:"operator"` //运营操作人
Source int `json:"source"` //来源[1用户发布、2运营发布]
Id int64 `json:"id"` //id
Title string `json:"title"` //标题
AuthorId int64 `json:"authorId"` //发布人ID
Author string `json:"author"` //发布人
Cover string `json:"cover"` //封面
Images []string `json:"images"` //图片
CreatedAt int64 `json:"createdAt"` //文章的创建日期
UpdatedAt int64 `json:"updatedAt"` //文章的编辑日期
CountLove int `json:"countLove"` //点赞数量
CountComment int `json:"countComment"` //评论数量
Show int `json:"show"` //是否隐藏 [0显示、1不显示]
Tags []string `json:"tags"` //标签
TargetUser int `json:"targetUser"` //分发方式 [0分发给所有人、1分发给指定的人]
Operator Operator `json:"operator"` //运营操作人
Source int `json:"source"` //来源[1用户发布、2运营发布]
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleUpdateRequest struct {
Id int64 `json:"id"`
CompanyId int64 `json:"companyId,optional"`
Template int `json:"template,optional"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []ArticleSection `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images,optional"` // 图片
Videos []Video `json:"video"` // 视频
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Template int `json:"template,optional"` // 使用哪个模板进行编辑 0、无 1、演绎式 2、归纳式
Section []ArticleSection `json:"section,optional"` // 填写的内容
Title string `json:"title"` // 标题
Images []string `json:"images,optional"` // 图片
Videos []Video `json:"video"` // 视频
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleUpdateResponse struct {
... ... @@ -1406,18 +1424,19 @@ type SystemArticleUpdateResponse struct {
}
type SystemArticleCreateRequest struct {
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
ArticleDraftId int64 `json:"articleDraftId"` // 草稿ID
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
ArticleDraftId int64 `json:"articleDraftId"` // 草稿ID
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Attachments []FileInfo `json:"attachments,optional"` // 附件
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
}
type SystemArticleCreateResponse struct {
... ... @@ -1478,14 +1497,15 @@ type SystemArticleGetHistoryResponse struct {
Section []ArticleSection `json:"section"` // 文章的文本内容
Images []string `json:"images"` // 图片
Videos []Video `json:"video"`
WhoRead []int64 `json:"whoRead"` // 谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview"` // 谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
Location Location `json:"location"` // 定位坐标
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
Cover string `json:"cover"` //封面
WhoRead []int64 `json:"whoRead"` // 谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview"` // 谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
Location Location `json:"location"` // 定位坐标
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
Tags []int64 `json:"tags"` // 标签
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleRestoreRequest struct {
... ... @@ -1537,30 +1557,32 @@ type MiniSearchArticleResponse struct {
}
type MiniSearchArticleItem struct {
ArticleId int64 `json:"articleId"`
Title string `json:"title"`
AuthorId int64 `json:"authorId"`
Author string `json:"author"` // 发布人
Avatar string `json:"avatar"` // 发布人的头像
Images []string `json:"images"`
CreatedAt int64 `json:"createdAt"`
MeReadFlag int `json:"meReadFlag"` //已读标识 [0:未读] [1:已读]
Cover string `json:"cover"` //封面
ArticleId int64 `json:"articleId"`
Title string `json:"title"`
AuthorId int64 `json:"authorId"`
Author string `json:"author"` // 发布人
Avatar string `json:"avatar"` // 发布人的头像
Images []string `json:"images"`
CreatedAt int64 `json:"createdAt"`
MeReadFlag int `json:"meReadFlag"` //已读标识 [0:未读] [1:已读]
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleDraftCreateRequest struct {
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleDraftCreateResponse struct {
... ... @@ -1578,19 +1600,20 @@ type SystemArticleDraftCreateResponse struct {
}
type SystemArticleDraftUpdateRequest struct {
Id int64 `json:"id"` // ID
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Id int64 `json:"id"` // ID
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
AccessToken string `header:"x-mmm-accesstoken"` // 授权token
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleDraftUpdateResponse struct {
... ... @@ -1623,14 +1646,15 @@ type SystemArticleDraftSearchResponse struct {
}
type SystemArticleDraftSearch struct {
Id int64 `json:"id"` //ID
Title string `json:"title"` //标题
Images []string `json:"images"` //图片
Operator string `json:"operator"` //操作人
AuthorId int64 `json:"authorId"` //发布人id
Author string `json:"author"` //发布人
UpdatedAt int64 `json:"updatedAt"` //编辑时间
Cover string `json:"cover"` //封面
Id int64 `json:"id"` //ID
Title string `json:"title"` //标题
Images []string `json:"images"` //图片
Operator string `json:"operator"` //操作人
AuthorId int64 `json:"authorId"` //发布人id
Author string `json:"author"` //发布人
UpdatedAt int64 `json:"updatedAt"` //编辑时间
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleDraftDeleteRequest struct {
... ... @@ -1657,21 +1681,22 @@ type SystemArticleDraftGetRequest struct {
}
type SystemArticleDraftGetResponse struct {
Id int64 `json:"id"` //ID
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Id int64 `json:"id"` //ID
Title string `json:"title"` //标题
Content string `json:"content"` //文章的文本内容
AuthorId int64 `json:"authorId"` //发布人id
Images []string `json:"images,optional"` //图片
Videos []Video `json:"video,optional"` // 视频
TargetUser int `json:"targetUser"` // 分发方式 [0分发给所有人、1分发给指定的人]
WhoRead []int64 `json:"whoRead,optional"` //谁可查看
WhoReadInfo []UserShowName `json:"whoReadInfo"` // 谁可查看
WhoReview []int64 `json:"whoReview,optional"` //谁可评论
WhoReviewInfo []UserShowName `json:"whoReviewInfo"` // 谁可评论
MatchUrl map[string]string `json:"matchUrl,optional"` // 匹配文章内容中的url文本
Tags []int64 `json:"tags"` // 标签
Paragraphs []Paragraph `json:"paragraphs,optional"` // 段落
Cover string `json:"cover"` //封面
Attachments []FileInfo `json:"attachments,optional"` // 附件
}
type SystemArticleSearchDeletedRequest struct {
... ...
... ... @@ -36,6 +36,7 @@ type Article struct {
Operator domain.Operator `gorm:"type:jsonb;serializer:json"` // 运营操作人
DeletedType int `json:"deletedType"` // 删除类型 1-运营删除 2-用户删除
Cover string
Attachments []domain.FileInfo `gorm:"type:jsonb;serializer:json"`
}
func (m *Article) TableName() string {
... ...
... ... @@ -32,6 +32,7 @@ type ArticleBackup struct {
TargetUser int // 分发方式 0 分发给所有人 1 分发给指定的人
MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
Show int
Attachments []domain.FileInfo `gorm:"type:jsonb;serializer:json"`
}
func (m *ArticleBackup) TableName() string {
... ...
... ... @@ -10,24 +10,24 @@ import (
)
type ArticleDraft struct {
Id int64 `gorm:"primaryKey"` // 唯一标识
CompanyId int64
CreatedAt int64
UpdatedAt int64
IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"`
DeletedAt int64
Version int
Template int // 填写内容时用的样板0、无 1、演绎式 2、归纳式
Content []string `gorm:"type:jsonb;serializer:json"` // 文章内容
AuthorId int64 // 发布人
Title string // 文章标题
Images []domain.Image `gorm:"type:jsonb;serializer:json"` // 图片
WhoRead []int64 `gorm:"type:jsonb;serializer:json"` // 谁可以看
WhoReview []int64 `gorm:"type:jsonb;serializer:json"` // 评论人
Location domain.Location `gorm:"type:jsonb;serializer:json"` // 坐标
MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"`
Id int64 `gorm:"primaryKey"` // 唯一标识
CompanyId int64
CreatedAt int64
UpdatedAt int64
IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"`
DeletedAt int64
Version int
Template int // 填写内容时用的样板0、无 1、演绎式 2、归纳式
Content []string `gorm:"type:jsonb;serializer:json"` // 文章内容
AuthorId int64 // 发布人
Title string // 文章标题
Images []domain.Image `gorm:"type:jsonb;serializer:json"` // 图片
WhoRead []int64 `gorm:"type:jsonb;serializer:json"` // 谁可以看
WhoReview []int64 `gorm:"type:jsonb;serializer:json"` // 评论人
Location domain.Location `gorm:"type:jsonb;serializer:json"` // 坐标
MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
Attachments []domain.FileInfo `gorm:"type:jsonb;serializer:json"`
Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"`
}
func (m *ArticleDraft) TableName() string {
... ...
... ... @@ -10,27 +10,27 @@ import (
// ArticleDraftOperation 运营草稿
type ArticleDraftOperation struct {
Id int64 `gorm:"primaryKey"` // 唯一标识
CompanyId int64 `gorm:"comment:公司ID"` // 公司ID
AuthorId int64 `gorm:"comment:发布人ID"` // 发布人
Title string `gorm:"comment:标题"` // 文章标题
Content string `json:"content"` // 文章内容
Images []domain.Image `gorm:"type:jsonb;serializer:json"` // 图片
Videos []domain.Video `gorm:"type:jsonb;serializer:json"` // 视频
TargetUser domain.ArticleTarget `gorm:"comment:分发方式 0所有人 1指定人"` // 分发方式 0 分发给所有人 1 分发给指定的人
WhoRead []int64 `gorm:"type:jsonb;serializer:json"` // 谁可以看
WhoReview []int64 `gorm:"type:jsonb;serializer:json"` // 评论人
Tags []int64 `gorm:"type:jsonb;serializer:json"` //定性标签
MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
Source int `gorm:"default:1"` // 来源 1-用户发布 2-运营发布
Operator domain.Operator `gorm:"type:jsonb;serializer:json"` // 运营操作人
Version int `gorm:"comment:版本号"` // 版本号
CreatedAt int64 `gorm:"comment:创建时间"` // 创建时间
UpdatedAt int64 `gorm:"comment:编辑时间"` // 编辑时间
IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"` // 删除标记
DeletedAt int64 `gorm:"comment:删除时间"` // 删除时间
Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"` // 分段内容
Id int64 `gorm:"primaryKey"` // 唯一标识
CompanyId int64 `gorm:"comment:公司ID"` // 公司ID
AuthorId int64 `gorm:"comment:发布人ID"` // 发布人
Title string `gorm:"comment:标题"` // 文章标题
Content string `json:"content"` // 文章内容
Images []domain.Image `gorm:"type:jsonb;serializer:json"` // 图片
Videos []domain.Video `gorm:"type:jsonb;serializer:json"` // 视频
TargetUser domain.ArticleTarget `gorm:"comment:分发方式 0所有人 1指定人"` // 分发方式 0 分发给所有人 1 分发给指定的人
WhoRead []int64 `gorm:"type:jsonb;serializer:json"` // 谁可以看
WhoReview []int64 `gorm:"type:jsonb;serializer:json"` // 评论人
Tags []int64 `gorm:"type:jsonb;serializer:json"` //定性标签
MatchUrl map[string]string `gorm:"type:jsonb;serializer:json"` // 匹配文章内容中的url文本
Source int `gorm:"default:1"` // 来源 1-用户发布 2-运营发布
Operator domain.Operator `gorm:"type:jsonb;serializer:json"` // 运营操作人
Version int `gorm:"comment:版本号"` // 版本号
CreatedAt int64 `gorm:"comment:创建时间"` // 创建时间
UpdatedAt int64 `gorm:"comment:编辑时间"` // 编辑时间
IsDel soft_delete.DeletedAt `gorm:"softDelete:flag,DeletedAtField:DeletedAt"` // 删除标记
DeletedAt int64 `gorm:"comment:删除时间"` // 删除时间
Attachments []domain.FileInfo `gorm:"type:jsonb;serializer:json"`
Section []*domain.ArticleSection `gorm:"type:jsonb;serializer:json"` // 分段内容
}
func (m *ArticleDraftOperation) TableName() string {
... ...
... ... @@ -178,6 +178,7 @@ func (repository *ArticleBackupRepository) ModelToDomainModel(from *models.Artic
ChangeField: from.ChangeField,
Videos: from.Videos,
Show: domain.ArticleShow(from.Show),
Attachments: from.Attachments,
}
// err := copier.Copy(to, from)
return to, nil
... ... @@ -207,6 +208,7 @@ func (repository *ArticleBackupRepository) DomainModelToModel(from *domain.Artic
Videos: from.Videos,
ChangeField: from.ChangeField,
Show: int(from.Show),
Attachments: from.Attachments,
}
// err := copier.Copy(to, from)
return to, nil
... ...
... ... @@ -146,22 +146,23 @@ func (repository *ArticleDraftRepository) Find(ctx context.Context, conn transac
func (repository *ArticleDraftRepository) ModelToDomainModel(from *models.ArticleDraft) (*domain.ArticleDraft, error) {
to := &domain.ArticleDraft{
Id: from.Id,
CompanyId: from.CompanyId,
CreatedAt: from.CreatedAt,
UpdatedAt: from.UpdatedAt,
DeletedAt: from.DeletedAt,
Version: from.Version,
Template: from.Template,
Content: from.Content,
AuthorId: from.AuthorId,
Title: from.Title,
Images: from.Images,
WhoRead: from.WhoRead,
WhoReview: from.WhoReview,
Location: from.Location,
MatchUrl: from.MatchUrl,
Section: from.Section,
Id: from.Id,
CompanyId: from.CompanyId,
CreatedAt: from.CreatedAt,
UpdatedAt: from.UpdatedAt,
DeletedAt: from.DeletedAt,
Version: from.Version,
Template: from.Template,
Content: from.Content,
AuthorId: from.AuthorId,
Title: from.Title,
Images: from.Images,
WhoRead: from.WhoRead,
WhoReview: from.WhoReview,
Location: from.Location,
MatchUrl: from.MatchUrl,
Section: from.Section,
Attachments: from.Attachments,
}
// err := copier.Copy(to, from)
return to, nil
... ... @@ -169,22 +170,23 @@ func (repository *ArticleDraftRepository) ModelToDomainModel(from *models.Articl
func (repository *ArticleDraftRepository) DomainModelToModel(from *domain.ArticleDraft) (*models.ArticleDraft, error) {
to := &models.ArticleDraft{
Id: from.Id,
CompanyId: from.CompanyId,
CreatedAt: from.CreatedAt,
UpdatedAt: from.UpdatedAt,
DeletedAt: from.DeletedAt,
Version: from.Version,
Template: from.Template,
Content: from.Content,
AuthorId: from.AuthorId,
Title: from.Title,
Images: from.Images,
WhoRead: from.WhoRead,
WhoReview: from.WhoReview,
Location: from.Location,
MatchUrl: from.MatchUrl,
Section: from.Section,
Id: from.Id,
CompanyId: from.CompanyId,
CreatedAt: from.CreatedAt,
UpdatedAt: from.UpdatedAt,
DeletedAt: from.DeletedAt,
Version: from.Version,
Template: from.Template,
Content: from.Content,
AuthorId: from.AuthorId,
Title: from.Title,
Images: from.Images,
WhoRead: from.WhoRead,
WhoReview: from.WhoReview,
Location: from.Location,
MatchUrl: from.MatchUrl,
Section: from.Section,
Attachments: from.Attachments,
}
// err := copier.Copy(to, from)
return to, nil
... ...
... ... @@ -452,6 +452,7 @@ func (repository *ArticleRepository) ModelToDomainModel(from *models.Article) (*
DeletedType: from.DeletedType,
IsDel: int(from.IsDel),
Cover: from.Cover,
Attachments: from.Attachments,
}
return to, nil
}
... ... @@ -485,6 +486,7 @@ func (repository *ArticleRepository) DomainModelToModel(from *domain.Article) (*
Operator: from.Operator,
DeletedType: from.DeletedType,
Cover: from.Cover,
Attachments: from.Attachments,
}
// err := copier.Copy(to, from)
return to, nil
... ...
... ... @@ -36,9 +36,15 @@ type Article struct {
Operator Operator `gorm:"type:jsonb;serializer:json"` // 运营操作人
DeletedType int `json:"deletedType"` // 删除类型 1-运营删除 2-用户删除
Cover string `json:"cover"` // 封面
Attachments []FileInfo `json:"attachments"` // 附件
// ...more
}
type FileInfo struct {
Name string `json:"name"`
Url string `json:"url"`
}
type ArticleRepository interface {
Insert(ctx context.Context, conn transaction.Conn, dm *Article) (*Article, error)
Update(ctx context.Context, conn transaction.Conn, dm *Article) (*Article, error)
... ...
... ... @@ -24,13 +24,14 @@ type ArticleBackup struct {
Action string `json:"action"` // 操作
// 新的备份内容相对与旧的文章信息哪些内容发生了变更,可选值[WhoRead] 修改了分发对象, [WhoReview] 修改了评论范围,[Section] 修改了内容
ChangeField []string `json:"changeField"`
TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人
Location Location `json:"location"` // 定位坐标
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Tags []int64 `json:"tags"` // 标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Show ArticleShow `json:"show"` // 评论的展示状态(1显示,2不显示、)
TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人
Location Location `json:"location"` // 定位坐标
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Tags []int64 `json:"tags"` // 标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Show ArticleShow `json:"show"` // 评论的展示状态(1显示,2不显示、)
Attachments []FileInfo `json:"attachments"` // 附件
}
type ArticleBackupRepository interface {
... ...
... ... @@ -9,23 +9,23 @@ import (
// 填写文章时保存的草稿
type ArticleDraft struct {
Id int64 `json:"id"`
CompanyId int64 `json:"companyId"`
CreatedAt int64 `json:"createdAt,omitempty"`
UpdatedAt int64 `json:"updatedAt,omitempty"`
DeletedAt int64 `json:"deletedAt,omitempty"`
Version int `json:"version,omitempty"`
Template int `json:"template"` // 填写内容时用的样板0、无 1、演绎式 2、归纳式
Content []string `json:"content"` // 文章内容
AuthorId int64 `json:"authorId"` // 发布人
Title string `json:"title"` // 文章标题
Images []Image `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Section []*ArticleSection `json:"section"` // 分段内容
Id int64 `json:"id"`
CompanyId int64 `json:"companyId"`
CreatedAt int64 `json:"createdAt,omitempty"`
UpdatedAt int64 `json:"updatedAt,omitempty"`
DeletedAt int64 `json:"deletedAt,omitempty"`
Version int `json:"version,omitempty"`
Template int `json:"template"` // 填写内容时用的样板0、无 1、演绎式 2、归纳式
Content []string `json:"content"` // 文章内容
AuthorId int64 `json:"authorId"` // 发布人
Title string `json:"title"` // 文章标题
Images []Image `json:"images"` // 图片
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Location Location `json:"location"` // 坐标
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Section []*ArticleSection `json:"section"` // 分段内容
Attachments []FileInfo `json:"attachments"` // 附件
}
type ArticleDraftRepository interface {
Insert(ctx context.Context, conn transaction.Conn, dm *ArticleDraft) (*ArticleDraft, error)
... ...
... ... @@ -8,26 +8,27 @@ import (
// ArticleDraftOperation 运营草稿
type ArticleDraftOperation struct {
Id int64 `json:"id"` // 唯一标识
CompanyId int64 `json:"companyId,string"` // 公司ID
AuthorId int64 `json:"authorId"` // 发布人
Title string `json:"title"` // 文章标题
Content string `json:"content"` // 文章内容
Images []Image `json:"images"` // 图片
Videos []Video `json:"videos"` // 视频
TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Tags []int64 `json:"tags"` //定性标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Source int `json:"source"` // 来源 1-用户发布 2-运营发布
Operator Operator `json:"operator"` // 运营操作人
Version int `json:"version,omitempty"` // 版本号
CreatedAt int64 `json:"createdAt,omitempty"` // 创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` // 编辑时间
IsDel soft_delete.DeletedAt `json:"isDel,omitempty"` // 删除标记
DeletedAt int64 `json:"deletedAt,omitempty"` // 删除时间
Section []*ArticleSection `json:"section"` // 分段内容
Id int64 `json:"id"` // 唯一标识
CompanyId int64 `json:"companyId,string"` // 公司ID
AuthorId int64 `json:"authorId"` // 发布人
Title string `json:"title"` // 文章标题
Content string `json:"content"` // 文章内容
Images []Image `json:"images"` // 图片
Videos []Video `json:"videos"` // 视频
TargetUser ArticleTarget `json:"targetUser"` // 分发方式 0 分发给所有人 1 分发给指定的人
WhoRead []int64 `json:"whoRead"` // 谁可以看
WhoReview []int64 `json:"whoReview"` // 评论人
Tags []int64 `json:"tags"` //定性标签
MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本
Source int `json:"source"` // 来源 1-用户发布 2-运营发布
Operator Operator `json:"operator"` // 运营操作人
Version int `json:"version,omitempty"` // 版本号
CreatedAt int64 `json:"createdAt,omitempty"` // 创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` // 编辑时间
IsDel soft_delete.DeletedAt `json:"isDel,omitempty"` // 删除标记
DeletedAt int64 `json:"deletedAt,omitempty"` // 删除时间
Section []*ArticleSection `json:"section"` // 分段内容
Attachments []FileInfo `json:"attachments"` // 附件
}
type ArticleDraftOperationRepository interface {
... ...
-- 附件
alter table article add column attachments jsonb;
alter table article_backup add column attachments jsonb;
alter table article_draft add column attachments jsonb;
alter table article_draft_operation add column attachments jsonb;
\ No newline at end of file
... ...