This commit is contained in:
hailin 2025-06-19 10:41:14 +08:00
parent 7f89b8c0b3
commit 540d7de478
1 changed files with 36 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package core package core
import ( import (
"encoding/json"
"fmt" "fmt"
"intent-system/pkg/config" "intent-system/pkg/config"
"intent-system/pkg/dal/dao" "intent-system/pkg/dal/dao"
@ -145,7 +146,16 @@ func (m *BizCore) NewsEdit(ctx *itypes.Context, req *proto.NewsEditReq) (resp *p
if err != nil { if err != nil {
return nil, itypes.NewBizCodeDatabaseError(err.Error()) return nil, itypes.NewBizCodeDatabaseError(err.Error())
} }
news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Edit) // news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Edit)
var prevLogs []*models.ChangeLog
if raw, ok := news.ExtraData["logs"]; ok {
if arr, ok := raw.([]interface{}); ok {
// 先 marshal 回去再 unmarshal 成 []*ChangeLog通用做法
bytes, _ := json.Marshal(arr)
_ = json.Unmarshal(bytes, &prevLogs)
}
}
news.ExtraData["logs"] = models.MakeChangeLog(prevLogs, ctx.UserName(), models.OperType_Edit)
_, err = m.newsDAO.Update(&models.NewsDO{ _, err = m.newsDAO.Update(&models.NewsDO{
Id: news.Id, Id: news.Id,
ExtraData: news.ExtraData, ExtraData: news.ExtraData,
@ -171,7 +181,16 @@ func (m *BizCore) NewsDelete(ctx *itypes.Context, req *proto.NewsDeleteReq) (res
return nil, itypes.NewBizCode(itypes.CODE_INVALID_PARAMS, err.Error()) return nil, itypes.NewBizCode(itypes.CODE_INVALID_PARAMS, err.Error())
} }
news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Delete) // news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Delete)
var prevLogs []*models.ChangeLog
if raw, ok := news.ExtraData["logs"]; ok {
if arr, ok := raw.([]interface{}); ok {
// 尝试转成 []*ChangeLog
bytes, _ := json.Marshal(arr)
_ = json.Unmarshal(bytes, &prevLogs)
}
}
news.ExtraData["logs"] = models.MakeChangeLog(prevLogs, ctx.UserName(), models.OperType_Delete)
_, err = m.newsDAO.Update(&models.NewsDO{ _, err = m.newsDAO.Update(&models.NewsDO{
Id: id, Id: id,
@ -282,7 +301,8 @@ func (m *BizCore) NewsDraftPublish(ctx *itypes.Context, req *proto.NewsDraftPubl
ImageUrl: draft.ImageUrl, ImageUrl: draft.ImageUrl,
Content: draft.Content, Content: draft.Content,
Language: draft.Language, Language: draft.Language,
ExtraData: models.CommonExtraData{}, // ExtraData: models.CommonExtraData{},
ExtraData: map[string]interface{}{}, // ✅ 替代旧结构体
}) })
if err != nil { if err != nil {
return nil, itypes.NewBizCodeDatabaseError(err.Error()) return nil, itypes.NewBizCodeDatabaseError(err.Error())
@ -751,7 +771,19 @@ func (m *BizCore) SubEditNews(ctx *itypes.Context, req *proto.SubEditNewsReq) (r
news.Tags = req.Tags news.Tags = req.Tags
news.ImageUrl = req.ImageUrl news.ImageUrl = req.ImageUrl
news.Content = req.Content news.Content = req.Content
news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Edit) // news.ExtraData.Logs = models.MakeChangeLog(news.ExtraData.Logs, ctx.UserName(), models.OperType_Edit)
var prevLogs []*models.ChangeLog
if raw, ok := news.ExtraData["logs"]; ok {
if arr, ok := raw.([]interface{}); ok {
// 安全解析为 []*ChangeLog
if bytes, err := json.Marshal(arr); err == nil {
_ = json.Unmarshal(bytes, &prevLogs)
}
}
}
news.ExtraData["logs"] = models.MakeChangeLog(prevLogs, ctx.UserName(), models.OperType_Edit)
_, err = m.newsDAO.Update(news, _, err = m.newsDAO.Update(news,
models.NEWS_COLUMN_CATEGORY, models.NEWS_COLUMN_CATEGORY,
models.NEWS_COLUMN_MAIN_TITLE, models.NEWS_COLUMN_MAIN_TITLE,