This commit is contained in:
hailin 2025-06-19 10:32:38 +08:00
parent 6748a95ccf
commit 7f89b8c0b3
5 changed files with 62 additions and 6 deletions

View File

@ -14,6 +14,8 @@ type BizApi interface {
NewsDraftPublish(c *gin.Context) //草稿发布 NewsDraftPublish(c *gin.Context) //草稿发布
NewsDraftDelete(c *gin.Context) //草稿删除 NewsDraftDelete(c *gin.Context) //草稿删除
NewsTag(c *gin.Context) //新闻打标签 NewsTag(c *gin.Context) //新闻打标签
NewsAsync(c *gin.Context) //异步同步数据
NewsPullNew(c *gin.Context) //拉取新的数据
QaList(c *gin.Context) //Q&A列表 QaList(c *gin.Context) //Q&A列表
QaAdd(c *gin.Context) //Q&A新增 QaAdd(c *gin.Context) //Q&A新增
QaEdit(c *gin.Context) //Q&A编辑 QaEdit(c *gin.Context) //Q&A编辑

View File

@ -1,11 +1,12 @@
package controllers package controllers
import ( import (
"github.com/civet148/log"
"github.com/gin-gonic/gin"
"intent-system/pkg/privilege" "intent-system/pkg/privilege"
"intent-system/pkg/proto" "intent-system/pkg/proto"
"intent-system/pkg/sessions" "intent-system/pkg/sessions"
"github.com/civet148/log"
"github.com/gin-gonic/gin"
) )
func (m *Controller) NewsList(c *gin.Context) { func (m *Controller) NewsList(c *gin.Context) {
@ -534,3 +535,41 @@ func (m *Controller) TagDelete(c *gin.Context) {
} }
m.OK(c, resp, 1, 1) m.OK(c, resp, 1, 1)
} }
func (m *Controller) NewsAsync(c *gin.Context) {
var req proto.NewsListReq
if err := m.bindJSON(c, &req); err != nil {
log.Errorf("%s", err)
return
}
ctx := sessions.GetContext(c)
var ok bool
if ctx != nil {
ok = m.CheckPrivilege(c, ctx, privilege.NewsAccess)
}
resp, total, code := m.BizCore.NewsList(ctx, &req, ok)
if !code.Ok() {
m.Error(c, code)
return
}
m.OK(c, resp, len(resp.List), total)
}
func (m *Controller) NewsPullNew(c *gin.Context) {
var req proto.NewsListReq
if err := m.bindJSON(c, &req); err != nil {
log.Errorf("%s", err)
return
}
ctx := sessions.GetContext(c)
var ok bool
if ctx != nil {
ok = m.CheckPrivilege(c, ctx, privilege.NewsAccess)
}
resp, total, code := m.BizCore.NewsList(ctx, &req, ok)
if !code.Ok() {
m.Error(c, code)
return
}
m.OK(c, resp, len(resp.List), total)
}

View File

@ -66,7 +66,8 @@ type NewsDO struct {
DataTime string `json:"data_time" db:"data_time" bson:"data_time"` //数据生成时间 DataTime string `json:"data_time" db:"data_time" bson:"data_time"` //数据生成时间
CreatedTime string `json:"created_time" db:"created_time" sqlca:"readonly" bson:"created_time"` //数据创建时间 CreatedTime string `json:"created_time" db:"created_time" sqlca:"readonly" bson:"created_time"` //数据创建时间
UpdatedTime string `json:"updated_time" db:"updated_time" sqlca:"readonly" bson:"updated_time"` //数据更新时间 UpdatedTime string `json:"updated_time" db:"updated_time" sqlca:"readonly" bson:"updated_time"` //数据更新时间
ExtraData CommonExtraData `json:"extra_data" db:"extra_data" sqlca:"isnull" bson:"extra_data"` //附带数据(JSON) ExtraDataRaw string `db:"extra_data" json:"-"` // 原始 JSON 字符串,接收数据库字段
ExtraData map[string]interface{} `db:"-" json:"extra_data"` // 实际对外使用的 map跳过 DB 映射
} }
func (do *NewsDO) GetId() int64 { return do.Id } func (do *NewsDO) GetId() int64 { return do.Id }
@ -125,8 +126,8 @@ func (do *NewsDO) GetCreatedTime() string { return do.CreatedTime }
func (do *NewsDO) SetCreatedTime(v string) { do.CreatedTime = v } func (do *NewsDO) SetCreatedTime(v string) { do.CreatedTime = v }
func (do *NewsDO) GetUpdatedTime() string { return do.UpdatedTime } func (do *NewsDO) GetUpdatedTime() string { return do.UpdatedTime }
func (do *NewsDO) SetUpdatedTime(v string) { do.UpdatedTime = v } func (do *NewsDO) SetUpdatedTime(v string) { do.UpdatedTime = v }
func (do *NewsDO) GetExtraData() CommonExtraData { return do.ExtraData } func (do *NewsDO) GetExtraData() map[string]interface{} { return do.ExtraData }
func (do *NewsDO) SetExtraData(v CommonExtraData) { do.ExtraData = v } func (do *NewsDO) SetExtraData(v map[string]interface{}) { do.ExtraData = v }
/* /*
CREATE TABLE `news` ( CREATE TABLE `news` (

View File

@ -279,3 +279,12 @@ type TagDeleteReq struct {
type TagDeleteResp struct { type TagDeleteResp struct {
} }
type NewsAsync struct {
Org_Id int64 `json:"org_id"`
Digest string `json:"digest"`
}
type NewsAsyncResp struct {
List []*models.NewsDO `json:"list"`
}

View File

@ -1,9 +1,10 @@
package routers package routers
import ( import (
"github.com/gin-gonic/gin"
"intent-system/pkg/api" "intent-system/pkg/api"
"intent-system/pkg/middleware" "intent-system/pkg/middleware"
"github.com/gin-gonic/gin"
) )
const ( const (
@ -25,6 +26,8 @@ const (
RouterSubPathNewsDraftPublish = "/draft/publish" RouterSubPathNewsDraftPublish = "/draft/publish"
RouterSubPathNewsDraftDelete = "/draft/delete" RouterSubPathNewsDraftDelete = "/draft/delete"
RouterSubPathNewsTag = "/tag" RouterSubPathNewsTag = "/tag"
RouterSubPathNewsAsync = "/async"
RouterSubPathNewsPullNew = "pullnew"
RouterSubPathQaList = "/list" RouterSubPathQaList = "/list"
RouterSubPathQaAdd = "/add" RouterSubPathQaAdd = "/add"
RouterSubPathQaEdit = "/edit" RouterSubPathQaEdit = "/edit"
@ -47,6 +50,8 @@ func InitRouterGroupBiz(r *gin.Engine, handlers api.BizApi) {
groupNews := r.Group(GroupRouterNewsV1) groupNews := r.Group(GroupRouterNewsV1)
groupNews.POST(RouterSubPathNewsList, handlers.NewsList) groupNews.POST(RouterSubPathNewsList, handlers.NewsList)
groupNews.POST(RouterSubPathNewsAsync, handlers.NewsList)
groupNews.POST(RouterSubPathNewsPullNew, handlers.NewsList)
groupNews.Use(middleware.JWT()) //use JWT token middleware groupNews.Use(middleware.JWT()) //use JWT token middleware
{ {
groupNews.POST(RouterSubPathNewsAdd, handlers.NewsAdd) groupNews.POST(RouterSubPathNewsAdd, handlers.NewsAdd)