正在显示
12 个修改的文件
包含
210 行增加
和
52 行删除
| @@ -65,6 +65,9 @@ service Core { | @@ -65,6 +65,9 @@ service Core { | ||
| 65 | @handler MiniArticleBackupSearch | 65 | @handler MiniArticleBackupSearch |
| 66 | post /article_backup/search (MiniArticleBackupSearchRequest) returns (MiniArticleBackupSearchResponse) | 66 | post /article_backup/search (MiniArticleBackupSearchRequest) returns (MiniArticleBackupSearchResponse) |
| 67 | 67 | ||
| 68 | + @doc "小程序获取文章的编辑记录" | ||
| 69 | + @handler MiniGetArticleBackup | ||
| 70 | + get /article_backup/:id (MiniGetArticleBackupRequest) returns (MiniGetArticleBackupResponse) | ||
| 68 | 71 | ||
| 69 | @doc "小程序设置文章的定性标签" | 72 | @doc "小程序设置文章的定性标签" |
| 70 | @handler MiniArticleSetTag | 73 | @handler MiniArticleSetTag |
| @@ -176,8 +176,32 @@ type ( | @@ -176,8 +176,32 @@ type ( | ||
| 176 | ChangeField []string `json:"changeField"` | 176 | ChangeField []string `json:"changeField"` |
| 177 | CreatedAt int64 `json:"createdAt"` | 177 | CreatedAt int64 `json:"createdAt"` |
| 178 | Location Location `json:"location"` | 178 | Location Location `json:"location"` |
| 179 | + Action string `json:"action"` | ||
| 180 | + Show int `json:"show"` | ||
| 179 | } | 181 | } |
| 180 | ) | 182 | ) |
| 183 | + | ||
| 184 | +type ( | ||
| 185 | + MiniGetArticleBackupRequest { | ||
| 186 | + BackupId int64 `path:"id"` | ||
| 187 | + CompanyId int64 `path:",optional"` // 服务端自动获取 | ||
| 188 | + } | ||
| 189 | + MiniGetArticleBackupResponse { | ||
| 190 | + Id int64 `json:"id"` | ||
| 191 | + Title string `json:"title"` | ||
| 192 | + Content string `json:"content"` | ||
| 193 | + Images []string `json:"images"` | ||
| 194 | + Videos []Video `json:"videos"` | ||
| 195 | + ChangeField []string `json:"changeField"` | ||
| 196 | + CreatedAt int64 `json:"createdAt"` | ||
| 197 | + Location Location `json:"location"` | ||
| 198 | + Action string `json:"action"` | ||
| 199 | + Show int `json:"show"` | ||
| 200 | + } | ||
| 201 | +) | ||
| 202 | + | ||
| 203 | + | ||
| 204 | + | ||
| 181 | // 标记人员浏览了那个文章 | 205 | // 标记人员浏览了那个文章 |
| 182 | type ( | 206 | type ( |
| 183 | MiniArticleMarkUserReadRequest { | 207 | MiniArticleMarkUserReadRequest { |
| 1 | +package article | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "net/http" | ||
| 5 | + | ||
| 6 | + "github.com/zeromicro/go-zero/rest/httpx" | ||
| 7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/logic/article" | ||
| 8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
| 9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
| 10 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/result" | ||
| 11 | +) | ||
| 12 | + | ||
| 13 | +func MiniGetArticleBackupHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { | ||
| 14 | + return func(w http.ResponseWriter, r *http.Request) { | ||
| 15 | + var req types.MiniGetArticleBackupRequest | ||
| 16 | + if err := httpx.Parse(r, &req); err != nil { | ||
| 17 | + result.HttpResult(r, w, nil, err) | ||
| 18 | + return | ||
| 19 | + } | ||
| 20 | + | ||
| 21 | + l := article.NewMiniGetArticleBackupLogic(r.Context(), svcCtx) | ||
| 22 | + resp, err := l.MiniGetArticleBackup(&req) | ||
| 23 | + result.HttpResult(r, w, resp, err) | ||
| 24 | + } | ||
| 25 | +} |
| @@ -529,6 +529,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | @@ -529,6 +529,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { | ||
| 529 | Handler: article.MiniArticleBackupSearchHandler(serverCtx), | 529 | Handler: article.MiniArticleBackupSearchHandler(serverCtx), |
| 530 | }, | 530 | }, |
| 531 | { | 531 | { |
| 532 | + Method: http.MethodGet, | ||
| 533 | + Path: "/article_backup/:id", | ||
| 534 | + Handler: article.MiniGetArticleBackupHandler(serverCtx), | ||
| 535 | + }, | ||
| 536 | + { | ||
| 532 | Method: http.MethodPost, | 537 | Method: http.MethodPost, |
| 533 | Path: "/article/set_tag", | 538 | Path: "/article/set_tag", |
| 534 | Handler: article.MiniArticleSetTagHandler(serverCtx), | 539 | Handler: article.MiniArticleSetTagHandler(serverCtx), |
| @@ -74,6 +74,8 @@ func (l *MiniArticleBackupSearchLogic) MiniArticleBackupSearch(req *types.MiniAr | @@ -74,6 +74,8 @@ func (l *MiniArticleBackupSearchLogic) MiniArticleBackupSearch(req *types.MiniAr | ||
| 74 | Descript: backupList[i].Location.Descript, | 74 | Descript: backupList[i].Location.Descript, |
| 75 | }, | 75 | }, |
| 76 | ChangeField: backupList[i].ChangeField, | 76 | ChangeField: backupList[i].ChangeField, |
| 77 | + Action: backupList[i].Action, | ||
| 78 | + Show: int(backupList[i].Show), | ||
| 77 | } | 79 | } |
| 78 | } | 80 | } |
| 79 | return resp, nil | 81 | return resp, nil |
| @@ -192,8 +192,9 @@ func (l *MiniCreateArticleLogic) MiniCreateArticle(req *types.MiniArticleCreateR | @@ -192,8 +192,9 @@ func (l *MiniCreateArticleLogic) MiniCreateArticle(req *types.MiniArticleCreateR | ||
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | // 生成 备份数据 | 194 | // 生成 备份数据 |
| 195 | - backupData := newArticle.MakeBackup(articleAuthor, sectionList, "原始版本") | ||
| 196 | - _, err = l.svcCtx.ArticleBackupRepository.Insert(l.ctx, conn, backupData) | 195 | + var backupData domain.ArticleBackup |
| 196 | + backupData.MakeBackup(articleAuthor, newArticle, sectionList, "原始版本") | ||
| 197 | + _, err = l.svcCtx.ArticleBackupRepository.Insert(l.ctx, conn, &backupData) | ||
| 197 | if err != nil { | 198 | if err != nil { |
| 198 | return xerr.NewErrMsgErr("创建文章失败", err) | 199 | return xerr.NewErrMsgErr("创建文章失败", err) |
| 199 | } | 200 | } |
| 1 | +package article | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "context" | ||
| 5 | + "strings" | ||
| 6 | + | ||
| 7 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/svc" | ||
| 8 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/cmd/discuss/api/internal/types" | ||
| 9 | + "gitlab.fjmaimaimai.com/allied-creation/sumifcc-discuss/pkg/xerr" | ||
| 10 | + | ||
| 11 | + "github.com/zeromicro/go-zero/core/logx" | ||
| 12 | +) | ||
| 13 | + | ||
| 14 | +type MiniGetArticleBackupLogic struct { | ||
| 15 | + logx.Logger | ||
| 16 | + ctx context.Context | ||
| 17 | + svcCtx *svc.ServiceContext | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +func NewMiniGetArticleBackupLogic(ctx context.Context, svcCtx *svc.ServiceContext) *MiniGetArticleBackupLogic { | ||
| 21 | + return &MiniGetArticleBackupLogic{ | ||
| 22 | + Logger: logx.WithContext(ctx), | ||
| 23 | + ctx: ctx, | ||
| 24 | + svcCtx: svcCtx, | ||
| 25 | + } | ||
| 26 | +} | ||
| 27 | + | ||
| 28 | +func (l *MiniGetArticleBackupLogic) MiniGetArticleBackup(req *types.MiniGetArticleBackupRequest) (resp *types.MiniGetArticleBackupResponse, err error) { | ||
| 29 | + var conn = l.svcCtx.DefaultDBConn() | ||
| 30 | + | ||
| 31 | + backupInfo, err := l.svcCtx.ArticleBackupRepository.FindOne(l.ctx, conn, req.BackupId) | ||
| 32 | + if err != nil { | ||
| 33 | + return &types.MiniGetArticleBackupResponse{}, xerr.NewErrMsgErr("获取编辑记录失败", err) | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + content := strings.Builder{} | ||
| 37 | + for _, val2 := range backupInfo.Section { | ||
| 38 | + content.WriteString(val2.Content) | ||
| 39 | + } | ||
| 40 | + images := []string{} | ||
| 41 | + for _, val2 := range backupInfo.Images { | ||
| 42 | + images = append(images, val2.Url) | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + videos := []types.Video{} | ||
| 46 | + for _, val2 := range backupInfo.Videos { | ||
| 47 | + videos = append(videos, types.Video{ | ||
| 48 | + Url: val2.Url, | ||
| 49 | + Cover: val2.Cover, | ||
| 50 | + Width: val2.Width, | ||
| 51 | + Height: val2.Height, | ||
| 52 | + }) | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + resp = &types.MiniGetArticleBackupResponse{ | ||
| 56 | + Id: backupInfo.Id, | ||
| 57 | + Title: backupInfo.Title, | ||
| 58 | + Content: content.String(), | ||
| 59 | + Images: images, | ||
| 60 | + Videos: videos, | ||
| 61 | + CreatedAt: backupInfo.CreatedAt, | ||
| 62 | + Location: types.Location{ | ||
| 63 | + Longitude: backupInfo.Location.Longitude, | ||
| 64 | + Latitude: backupInfo.Location.Latitude, | ||
| 65 | + Descript: backupInfo.Location.Descript, | ||
| 66 | + }, | ||
| 67 | + ChangeField: backupInfo.ChangeField, | ||
| 68 | + Action: backupInfo.Action, | ||
| 69 | + Show: int(backupInfo.Show), | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + return | ||
| 73 | +} |
| @@ -52,13 +52,14 @@ func (l *SystemArticleRestoreLogic) SystemArticleRestore(req *types.SystemArticl | @@ -52,13 +52,14 @@ func (l *SystemArticleRestoreLogic) SystemArticleRestore(req *types.SystemArticl | ||
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | // 备份数据 | 54 | // 备份数据 |
| 55 | - newBackUp := article.MakeBackup(domain.UserSimple{ | 55 | + var newBackUp domain.ArticleBackup |
| 56 | + newBackUp.MakeBackup(domain.UserSimple{ | ||
| 56 | Id: userToken.UserId, | 57 | Id: userToken.UserId, |
| 57 | Name: userMe.User.NickName, | 58 | Name: userMe.User.NickName, |
| 58 | Avatar: userMe.User.Avatar, | 59 | Avatar: userMe.User.Avatar, |
| 59 | CompanyId: userToken.CompanyId, | 60 | CompanyId: userToken.CompanyId, |
| 60 | Company: userMe.CurrentCompany.Name, | 61 | Company: userMe.CurrentCompany.Name, |
| 61 | - }, sectionList, "恢复") | 62 | + }, article, sectionList, "恢复") |
| 62 | _ = newBackUp.CheckChangeField(oldBackup) | 63 | _ = newBackUp.CheckChangeField(oldBackup) |
| 63 | 64 | ||
| 64 | article.Version = article.Version + 1 | 65 | article.Version = article.Version + 1 |
| @@ -114,7 +115,7 @@ func (l *SystemArticleRestoreLogic) SystemArticleRestore(req *types.SystemArticl | @@ -114,7 +115,7 @@ func (l *SystemArticleRestoreLogic) SystemArticleRestore(req *types.SystemArticl | ||
| 114 | } | 115 | } |
| 115 | } | 116 | } |
| 116 | 117 | ||
| 117 | - _, err = l.svcCtx.ArticleBackupRepository.Insert(ctx, c, newBackUp) | 118 | + _, err = l.svcCtx.ArticleBackupRepository.Insert(ctx, c, &newBackUp) |
| 118 | if err != nil { | 119 | if err != nil { |
| 119 | return xerr.NewErrMsgErr("恢复文章版本失败", err) | 120 | return xerr.NewErrMsgErr("恢复文章版本失败", err) |
| 120 | } | 121 | } |
| @@ -75,7 +75,9 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | @@ -75,7 +75,9 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | ||
| 75 | if err != nil { | 75 | if err != nil { |
| 76 | return nil, xerr.NewErrMsgErr("帖子不存在", err) | 76 | return nil, xerr.NewErrMsgErr("帖子不存在", err) |
| 77 | } | 77 | } |
| 78 | - oldBackup := article.MakeBackup(operator, sectionList, "编辑") | 78 | + var oldBackup domain.ArticleBackup |
| 79 | + oldBackup.MakeBackup(operator, article, sectionList, "编辑") | ||
| 80 | + | ||
| 79 | // 获取图片的尺寸大小 | 81 | // 获取图片的尺寸大小 |
| 80 | images, err := l.getImages(req) | 82 | images, err := l.getImages(req) |
| 81 | if err != nil { | 83 | if err != nil { |
| @@ -158,11 +160,11 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | @@ -158,11 +160,11 @@ func (l *SystemUpdateArticleLogic) SystemUpdateArticle(req *types.SystemArticleU | ||
| 158 | return xerr.NewErrMsgErr("保存文章内容失败", err) | 160 | return xerr.NewErrMsgErr("保存文章内容失败", err) |
| 159 | } | 161 | } |
| 160 | } | 162 | } |
| 163 | + var backup domain.ArticleBackup | ||
| 164 | + backup.MakeBackup(operator, article, updateSection, "编辑") | ||
| 161 | 165 | ||
| 162 | - backup := article.MakeBackup(operator, updateSection, "编辑") | ||
| 163 | - | ||
| 164 | - if ok := backup.CheckChangeField(oldBackup); ok { | ||
| 165 | - _, err = l.svcCtx.ArticleBackupRepository.Insert(ctx, c, backup) | 166 | + if ok := backup.CheckChangeField(&oldBackup); ok { |
| 167 | + _, err = l.svcCtx.ArticleBackupRepository.Insert(ctx, c, &backup) | ||
| 166 | if err != nil { | 168 | if err != nil { |
| 167 | return xerr.NewErrMsgErr("保存文章内容失败", err) | 169 | return xerr.NewErrMsgErr("保存文章内容失败", err) |
| 168 | } | 170 | } |
| @@ -489,10 +489,10 @@ type MiniHomepageUserNewsRequest struct { | @@ -489,10 +489,10 @@ type MiniHomepageUserNewsRequest struct { | ||
| 489 | LastArticleId int64 `json:"lastArticleId,optional"` // 最后文章ID | 489 | LastArticleId int64 `json:"lastArticleId,optional"` // 最后文章ID |
| 490 | Size int `json:"size"` // 数量 | 490 | Size int `json:"size"` // 数量 |
| 491 | OrderByKey string `json:"orderByKey,options=HotScore|All|Time,optional,default=desc"` // 按规则排序 (热度:HotScore All:时间排序 Time:时间排序) | 491 | OrderByKey string `json:"orderByKey,options=HotScore|All|Time,optional,default=desc"` // 按规则排序 (热度:HotScore All:时间排序 Time:时间排序) |
| 492 | - OrderByValue string `json:"orderByValue,options=asc||desc,optional"` | ||
| 493 | - Keywords string `json:"keywords,optional"` // 关键字 | ||
| 494 | - BeginTime int64 `json:"beginTime,optional"` // 开始时间 | ||
| 495 | - EndTime int64 `json:"endTime,optional"` // 结束时间 | 492 | + OrderByValue string `json:"orderByValue,options=asc||desc,optional"` // 排序值 升序 asc 降序 desc |
| 493 | + Keywords string `json:"keywords,optional"` // 关键字 | ||
| 494 | + BeginTime int64 `json:"beginTime,optional"` // 开始时间 | ||
| 495 | + EndTime int64 `json:"endTime,optional"` // 结束时间 | ||
| 496 | } | 496 | } |
| 497 | 497 | ||
| 498 | type MiniHomepageUserNewsResposne struct { | 498 | type MiniHomepageUserNewsResposne struct { |
| @@ -1037,6 +1037,26 @@ type MiniArticleBackupItem struct { | @@ -1037,6 +1037,26 @@ type MiniArticleBackupItem struct { | ||
| 1037 | ChangeField []string `json:"changeField"` | 1037 | ChangeField []string `json:"changeField"` |
| 1038 | CreatedAt int64 `json:"createdAt"` | 1038 | CreatedAt int64 `json:"createdAt"` |
| 1039 | Location Location `json:"location"` | 1039 | Location Location `json:"location"` |
| 1040 | + Action string `json:"action"` | ||
| 1041 | + Show int `json:"show"` | ||
| 1042 | +} | ||
| 1043 | + | ||
| 1044 | +type MiniGetArticleBackupRequest struct { | ||
| 1045 | + BackupId int64 `path:"id"` | ||
| 1046 | + CompanyId int64 `path:",optional"` // 服务端自动获取 | ||
| 1047 | +} | ||
| 1048 | + | ||
| 1049 | +type MiniGetArticleBackupResponse struct { | ||
| 1050 | + Id int64 `json:"id"` | ||
| 1051 | + Title string `json:"title"` | ||
| 1052 | + Content string `json:"content"` | ||
| 1053 | + Images []string `json:"images"` | ||
| 1054 | + Videos []Video `json:"videos"` | ||
| 1055 | + ChangeField []string `json:"changeField"` | ||
| 1056 | + CreatedAt int64 `json:"createdAt"` | ||
| 1057 | + Location Location `json:"location"` | ||
| 1058 | + Action string `json:"action"` | ||
| 1059 | + Show int `json:"show"` | ||
| 1040 | } | 1060 | } |
| 1041 | 1061 | ||
| 1042 | type MiniArticleMarkUserReadRequest struct { | 1062 | type MiniArticleMarkUserReadRequest struct { |
| @@ -95,44 +95,6 @@ func (a ArticleShow) Named() string { | @@ -95,44 +95,6 @@ func (a ArticleShow) Named() string { | ||
| 95 | return "" | 95 | return "" |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | -// 设置文章的备份数据 | ||
| 99 | -func (m *Article) MakeBackup(operator UserSimple, section []*ArticleSection, action string) *ArticleBackup { | ||
| 100 | - sectionBackup := make([]ArticleSection, len(section)) | ||
| 101 | - for i := range section { | ||
| 102 | - sectionBackup[i] = *section[i] | ||
| 103 | - } | ||
| 104 | - b := ArticleBackup{ | ||
| 105 | - Id: 0, | ||
| 106 | - CompanyId: m.CompanyId, | ||
| 107 | - CreatedAt: 0, | ||
| 108 | - UpdatedAt: 0, | ||
| 109 | - DeletedAt: 0, | ||
| 110 | - Version: m.Version, | ||
| 111 | - Operator: operator, | ||
| 112 | - ArticleId: m.Id, | ||
| 113 | - Title: m.Title, | ||
| 114 | - Section: sectionBackup, | ||
| 115 | - Images: make([]Image, len(m.Images)), | ||
| 116 | - Videos: make([]Video, len(m.Videos)), | ||
| 117 | - Action: action, | ||
| 118 | - TargetUser: m.TargetUser, | ||
| 119 | - WhoRead: m.WhoRead, | ||
| 120 | - WhoReview: m.WhoReview, | ||
| 121 | - Tags: m.Tags, | ||
| 122 | - MatchUrl: map[string]string{}, | ||
| 123 | - Location: m.Location, | ||
| 124 | - } | ||
| 125 | - if action == "原始版本" { | ||
| 126 | - b.ChangeField = append(b.ChangeField, "Section") | ||
| 127 | - } | ||
| 128 | - copy(b.Videos, m.Videos) | ||
| 129 | - copy(b.Images, m.Images) | ||
| 130 | - for k, v := range m.MatchUrl { | ||
| 131 | - b.MatchUrl[k] = v | ||
| 132 | - } | ||
| 133 | - return &b | ||
| 134 | -} | ||
| 135 | - | ||
| 136 | func (m *Article) SetSummary(sectionList []*ArticleSection) { | 98 | func (m *Article) SetSummary(sectionList []*ArticleSection) { |
| 137 | if len(sectionList) == 0 { | 99 | if len(sectionList) == 0 { |
| 138 | return | 100 | return |
| @@ -33,6 +33,7 @@ type ArticleBackup struct { | @@ -33,6 +33,7 @@ type ArticleBackup struct { | ||
| 33 | WhoReview []int64 `json:"whoReview"` // 评论人 | 33 | WhoReview []int64 `json:"whoReview"` // 评论人 |
| 34 | Tags []int64 `json:"tags"` // 标签 | 34 | Tags []int64 `json:"tags"` // 标签 |
| 35 | MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本 | 35 | MatchUrl map[string]string `json:"matchUrl"` // 匹配文章内容中的url文本 |
| 36 | + Show ArticleShow `json:"show"` // 评论的展示状态(1显示,2不显示、) | ||
| 36 | } | 37 | } |
| 37 | 38 | ||
| 38 | type ArticleBackupRepository interface { | 39 | type ArticleBackupRepository interface { |
| @@ -138,3 +139,42 @@ func (bk *ArticleBackup) CheckChangeField(oldBackup *ArticleBackup) bool { | @@ -138,3 +139,42 @@ func (bk *ArticleBackup) CheckChangeField(oldBackup *ArticleBackup) bool { | ||
| 138 | } | 139 | } |
| 139 | return len(bk.ChangeField) > 0 | 140 | return len(bk.ChangeField) > 0 |
| 140 | } | 141 | } |
| 142 | + | ||
| 143 | +// 创建备份信息 | ||
| 144 | +func (bk *ArticleBackup) MakeBackup(operator UserSimple, article *Article, section []*ArticleSection, action string) { | ||
| 145 | + sectionBackup := make([]ArticleSection, len(section)) | ||
| 146 | + for i := range section { | ||
| 147 | + sectionBackup[i] = *section[i] | ||
| 148 | + } | ||
| 149 | + b := ArticleBackup{ | ||
| 150 | + Id: 0, | ||
| 151 | + CompanyId: article.CompanyId, | ||
| 152 | + CreatedAt: 0, | ||
| 153 | + UpdatedAt: 0, | ||
| 154 | + DeletedAt: 0, | ||
| 155 | + Version: article.Version, | ||
| 156 | + Operator: operator, | ||
| 157 | + ArticleId: article.Id, | ||
| 158 | + Title: article.Title, | ||
| 159 | + Section: sectionBackup, | ||
| 160 | + Images: make([]Image, len(article.Images)), | ||
| 161 | + Videos: make([]Video, len(article.Videos)), | ||
| 162 | + Action: action, | ||
| 163 | + TargetUser: article.TargetUser, | ||
| 164 | + WhoRead: article.WhoRead, | ||
| 165 | + WhoReview: article.WhoReview, | ||
| 166 | + Tags: article.Tags, | ||
| 167 | + MatchUrl: map[string]string{}, | ||
| 168 | + Show: article.Show, | ||
| 169 | + Location: article.Location, | ||
| 170 | + } | ||
| 171 | + if action == "原始版本" { | ||
| 172 | + b.ChangeField = append(b.ChangeField, "Section") | ||
| 173 | + } | ||
| 174 | + copy(b.Videos, article.Videos) | ||
| 175 | + copy(b.Images, article.Images) | ||
| 176 | + for k, v := range article.MatchUrl { | ||
| 177 | + b.MatchUrl[k] = v | ||
| 178 | + } | ||
| 179 | + *bk = b | ||
| 180 | +} |
-
请 注册 或 登录 后发表评论