cid适配ppgo_job
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package yidun
|
||||
|
||||
import (
|
||||
internal "cid/controller/internal"
|
||||
dto "cid/model/dto/yidun"
|
||||
serviceDataengine "cid/service/dataengine"
|
||||
"context"
|
||||
@@ -24,7 +25,7 @@ type StatusRes struct {
|
||||
|
||||
// Start 启动送检服务
|
||||
func (c *ContentCheckController) Start(ctx context.Context, req *dto.StartCheckReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
if serviceDataengine.TencentContentCheck.IsRunning() {
|
||||
return &beans.ResponseEmpty{}, nil
|
||||
@@ -50,14 +51,14 @@ func (c *ContentCheckController) Start(ctx context.Context, req *dto.StartCheckR
|
||||
|
||||
// Stop 停止送检服务
|
||||
func (c *ContentCheckController) Stop(ctx context.Context, req *dto.EmptyReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
serviceDataengine.TencentContentCheck.Stop(ctx)
|
||||
return
|
||||
}
|
||||
|
||||
// Status 获取送检服务状态
|
||||
func (c *ContentCheckController) Status(ctx context.Context, req *dto.EmptyReq) (res *StatusRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
res = &StatusRes{
|
||||
Running: serviceDataengine.TencentContentCheck.IsRunning(),
|
||||
@@ -69,7 +70,7 @@ func (c *ContentCheckController) Status(ctx context.Context, req *dto.EmptyReq)
|
||||
|
||||
// ProcessImageCallback 处理图片检测回调
|
||||
func (c *ContentCheckController) ProcessImageCallback(ctx context.Context, req *dto.ProcessImageCallbackReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
if req.CallbackData == "" {
|
||||
return nil, fmt.Errorf("callbackData不能为空")
|
||||
@@ -81,7 +82,7 @@ func (c *ContentCheckController) ProcessImageCallback(ctx context.Context, req *
|
||||
|
||||
// ProcessVideoCallback 处理视频检测回调
|
||||
func (c *ContentCheckController) ProcessVideoCallback(ctx context.Context, req *dto.ProcessVideoCallbackReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
if req.CallbackData == "" {
|
||||
return nil, fmt.Errorf("callbackData不能为空")
|
||||
@@ -93,7 +94,7 @@ func (c *ContentCheckController) ProcessVideoCallback(ctx context.Context, req *
|
||||
|
||||
// ProcessImageResult 查询并处理图片检测结果(轮询模式)
|
||||
func (c *ContentCheckController) ProcessImageResult(ctx context.Context, req *dto.ProcessImageResultReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
if req.TaskID == "" {
|
||||
return nil, fmt.Errorf("taskId不能为空")
|
||||
@@ -105,7 +106,7 @@ func (c *ContentCheckController) ProcessImageResult(ctx context.Context, req *dt
|
||||
|
||||
// ProcessVideoResult 查询并处理视频检测结果(轮询模式)
|
||||
func (c *ContentCheckController) ProcessVideoResult(ctx context.Context, req *dto.ProcessVideoResultReq) (res *beans.ResponseEmpty, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
if req.TaskID == "" {
|
||||
return nil, fmt.Errorf("taskId不能为空")
|
||||
@@ -117,7 +118,7 @@ func (c *ContentCheckController) ProcessVideoResult(ctx context.Context, req *dt
|
||||
|
||||
// ManualSubmitImageByID 根据图片ID手动提交送检
|
||||
func (c *ContentCheckController) ManualSubmitImageByID(ctx context.Context, req *dto.ManualSubmitImageByIDReq) (res *dto.ManualSubmitRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
result, err := serviceDataengine.TencentContentCheck.SubmitImageByID(ctx, req.ImageID)
|
||||
if err != nil {
|
||||
@@ -132,7 +133,7 @@ func (c *ContentCheckController) ManualSubmitImageByID(ctx context.Context, req
|
||||
|
||||
// ManualSubmitVideoByID 根据视频ID手动提交送检
|
||||
func (c *ContentCheckController) ManualSubmitVideoByID(ctx context.Context, req *dto.ManualSubmitVideoByIDReq) (res *dto.ManualSubmitRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
result, err := serviceDataengine.TencentContentCheck.SubmitVideoByID(ctx, req.VideoID)
|
||||
if err != nil {
|
||||
@@ -147,7 +148,7 @@ func (c *ContentCheckController) ManualSubmitVideoByID(ctx context.Context, req
|
||||
|
||||
// GetImageCheckLogs 获取图片的送检日志
|
||||
func (c *ContentCheckController) GetImageCheckLogs(ctx context.Context, req *dto.GetImageCheckLogsReq) (res *dto.GetCheckLogsRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
logs, err := serviceDataengine.TencentContentCallback.GetCheckLogsByImageID(ctx, req.ImageID)
|
||||
if err != nil {
|
||||
@@ -162,7 +163,7 @@ func (c *ContentCheckController) GetImageCheckLogs(ctx context.Context, req *dto
|
||||
|
||||
// GetVideoCheckLogs 获取视频的送检日志
|
||||
func (c *ContentCheckController) GetVideoCheckLogs(ctx context.Context, req *dto.GetVideoCheckLogsReq) (res *dto.GetCheckLogsRes, err error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
logs, err := serviceDataengine.TencentContentCallback.GetCheckLogsByVideoID(ctx, req.VideoID)
|
||||
if err != nil {
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package yidun
|
||||
|
||||
import (
|
||||
internal "cid/controller/internal"
|
||||
dataengineService "cid/service/dataengine"
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"gitea.redpowerfuture.com/red-future/common/beans"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
)
|
||||
@@ -42,13 +40,13 @@ type PollResult struct {
|
||||
// Body: callbackData={"antispam":{...}}
|
||||
func (c *YidunCallbackController) ReceiveImageCallback(r *ghttp.Request) {
|
||||
// IP 白名单校验
|
||||
if !checkCallbackIP(r) {
|
||||
if !internal.CheckCallbackIP(r.Context()) {
|
||||
r.Response.WriteJson(CallbackResult{Code: 403, Msg: "IP not allowed"})
|
||||
return
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "yidun_callback", TenantId: 1})
|
||||
ctx = internal.WithCallbackUser(ctx)
|
||||
|
||||
// 易盾推送的数据在请求体中
|
||||
var callbackData string
|
||||
@@ -86,7 +84,7 @@ func (c *YidunCallbackController) ReceiveImageCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(CallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// ReceiveVideoCallback 接收易盾视频检测结果推送
|
||||
@@ -94,13 +92,13 @@ func (c *YidunCallbackController) ReceiveImageCallback(r *ghttp.Request) {
|
||||
// Body: callbackData={"antispam":{...}}
|
||||
func (c *YidunCallbackController) ReceiveVideoCallback(r *ghttp.Request) {
|
||||
// IP 白名单校验
|
||||
if !checkCallbackIP(r) {
|
||||
if !internal.CheckCallbackIP(r.Context()) {
|
||||
r.Response.WriteJson(CallbackResult{Code: 403, Msg: "IP not allowed"})
|
||||
return
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "yidun_callback", TenantId: 1})
|
||||
ctx = internal.WithCallbackUser(ctx)
|
||||
|
||||
// 易盾推送的数据在请求体中
|
||||
var callbackData string
|
||||
@@ -138,7 +136,7 @@ func (c *YidunCallbackController) ReceiveVideoCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(CallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
@@ -149,35 +147,40 @@ func (c *YidunCallbackController) ReceiveVideoCallback(r *ghttp.Request) {
|
||||
// 格式: POST /yidun/callback/poll
|
||||
func (c *YidunCallbackController) PollAllResults(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
g.Log().Info(ctx, "开始轮询所有待查询的检测结果...")
|
||||
|
||||
// 先获取待处理数量
|
||||
pendingCount, _ := dataengineService.MaterialVerify.GetPendingResultsCount(ctx)
|
||||
|
||||
// 执行轮询
|
||||
successCount, failCount, err := dataengineService.MaterialVerify.PollPendingResults(ctx)
|
||||
|
||||
result := PollResult{
|
||||
SuccessCount: successCount,
|
||||
FailCount: failCount,
|
||||
PendingCount: pendingCount - successCount,
|
||||
}
|
||||
// 轮询后再查一下剩余待处理的明细
|
||||
pendingItems, _ := dataengineService.MaterialVerify.GetPendingResultsDetail(ctx, 50)
|
||||
|
||||
msg := fmt.Sprintf("✅ 成功处理 %d 条 | ❌ 失败 %d 条 | ⏳ 还剩 %d 条待处理",
|
||||
successCount, failCount, len(pendingItems))
|
||||
|
||||
if err != nil {
|
||||
r.Response.WriteJson(CallbackResult{
|
||||
Code: 500,
|
||||
Msg: fmt.Sprintf("轮询完成但有错误: %v", err),
|
||||
Data: result,
|
||||
Msg: fmt.Sprintf("部分完成,但有错误: %v", err),
|
||||
Data: g.Map{
|
||||
"summary": g.Map{"success": successCount, "fail": failCount, "pending": len(pendingItems)},
|
||||
"pending_detail": pendingItems,
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{
|
||||
Code: 200,
|
||||
Msg: fmt.Sprintf("轮询完成,成功处理 %d 条,失败 %d 条", successCount, failCount),
|
||||
Data: result,
|
||||
Code: 0,
|
||||
Msg: msg,
|
||||
Data: g.Map{
|
||||
"summary": g.Map{"success": successCount, "fail": failCount, "pending": len(pendingItems)},
|
||||
"pending_detail": pendingItems,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -185,7 +188,7 @@ func (c *YidunCallbackController) PollAllResults(r *ghttp.Request) {
|
||||
// 格式: POST /yidun/callback/pollImage
|
||||
func (c *YidunCallbackController) PollImageResults(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
g.Log().Info(ctx, "开始轮询图片待查询的检测结果...")
|
||||
|
||||
@@ -201,7 +204,7 @@ func (c *YidunCallbackController) PollImageResults(r *ghttp.Request) {
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{
|
||||
Code: 200,
|
||||
Code: 0,
|
||||
Msg: fmt.Sprintf("轮询完成,成功处理 %d 条,失败 %d 条", successCount, failCount),
|
||||
Data: PollResult{SuccessCount: successCount, FailCount: failCount},
|
||||
})
|
||||
@@ -211,7 +214,7 @@ func (c *YidunCallbackController) PollImageResults(r *ghttp.Request) {
|
||||
// 格式: POST /yidun/callback/pollVideo
|
||||
func (c *YidunCallbackController) PollVideoResults(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
g.Log().Info(ctx, "开始轮询视频待查询的检测结果...")
|
||||
|
||||
@@ -227,7 +230,7 @@ func (c *YidunCallbackController) PollVideoResults(r *ghttp.Request) {
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{
|
||||
Code: 200,
|
||||
Code: 0,
|
||||
Msg: fmt.Sprintf("轮询完成,成功处理 %d 条,失败 %d 条", successCount, failCount),
|
||||
Data: PollResult{SuccessCount: successCount, FailCount: failCount},
|
||||
})
|
||||
@@ -237,7 +240,7 @@ func (c *YidunCallbackController) PollVideoResults(r *ghttp.Request) {
|
||||
// 格式: POST /yidun/callback/pollTask
|
||||
func (c *YidunCallbackController) PollByTaskID(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
taskID := r.Get("taskId", "").String()
|
||||
taskType := r.Get("type", "").String() // image 或 video
|
||||
@@ -268,14 +271,41 @@ func (c *YidunCallbackController) PollByTaskID(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{Code: 200, Msg: "查询并处理成功"})
|
||||
r.Response.WriteJson(CallbackResult{Code: 0, Msg: "查询并处理成功"})
|
||||
}
|
||||
|
||||
// PendingListRes 待查询结果明细
|
||||
type PendingListRes struct {
|
||||
Total int `json:"total"`
|
||||
List []dataengineService.PendingResultItem `json:"list"`
|
||||
}
|
||||
|
||||
// GetPendingDetail 获取待查询结果的明细
|
||||
// 格式: GET /yidun/callback/pendingDetail
|
||||
func (c *YidunCallbackController) GetPendingDetail(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
items, err := dataengineService.MaterialVerify.GetPendingResultsDetail(ctx, 50)
|
||||
if err != nil {
|
||||
r.Response.WriteJson(CallbackResult{Code: 500, Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 0,
|
||||
"data": PendingListRes{
|
||||
Total: len(items),
|
||||
List: items,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// GetPendingCount 获取待查询结果的数量
|
||||
// 格式: GET /yidun/callback/pendingCount
|
||||
func (c *YidunCallbackController) GetPendingCount(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
count, err := dataengineService.MaterialVerify.GetPendingResultsCount(ctx)
|
||||
if err != nil {
|
||||
@@ -284,7 +314,7 @@ func (c *YidunCallbackController) GetPendingCount(r *ghttp.Request) {
|
||||
}
|
||||
|
||||
r.Response.WriteJson(g.Map{
|
||||
"code": 200,
|
||||
"code": 0,
|
||||
"data": g.Map{
|
||||
"pending_count": count,
|
||||
"description": "待查询结果的日志数量(状态为pending且有taskID)",
|
||||
@@ -300,7 +330,7 @@ func (c *YidunCallbackController) GetPendingCount(r *ghttp.Request) {
|
||||
// 格式: POST /yidun/callback/processImage
|
||||
func (c *YidunCallbackController) ProcessImageCallback(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
var req struct {
|
||||
CallbackData string `json:"callbackData" v:"required#回调数据不能为空"`
|
||||
@@ -317,14 +347,14 @@ func (c *YidunCallbackController) ProcessImageCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(CallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// ProcessVideoCallback 手动处理视频回调(兼容旧接口)
|
||||
// 格式: POST /yidun/callback/processVideo
|
||||
func (c *YidunCallbackController) ProcessVideoCallback(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
var req struct {
|
||||
CallbackData string `json:"callbackData" v:"required#回调数据不能为空"`
|
||||
@@ -341,7 +371,7 @@ func (c *YidunCallbackController) ProcessVideoCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(CallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(CallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// toString 转换interface{}为string
|
||||
@@ -351,19 +381,3 @@ func toString(v interface{}) string {
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// checkCallbackIP 校验回调请求IP是否在白名单内
|
||||
func checkCallbackIP(r *ghttp.Request) bool {
|
||||
allowedIPs := g.Cfg().MustGet(r.Context(), "yidun.callback_allowed_ips", "").String()
|
||||
if allowedIPs == "" {
|
||||
return true // 未配置白名单,跳过校验
|
||||
}
|
||||
clientIP := r.GetClientIp()
|
||||
for _, ip := range strings.Split(allowedIPs, ",") {
|
||||
if strings.TrimSpace(ip) == clientIP {
|
||||
return true
|
||||
}
|
||||
}
|
||||
g.Log().Warningf(r.Context(), "回调IP不在白名单中, clientIP=%s, allowedIPs=%s", clientIP, allowedIPs)
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package yidun
|
||||
|
||||
import (
|
||||
internal "cid/controller/internal"
|
||||
serviceDataengine "cid/service/dataengine"
|
||||
"cid/service/yidun"
|
||||
"context"
|
||||
|
||||
"gitea.redpowerfuture.com/red-future/common/beans"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
"github.com/yidun/yidun-golang-sdk/yidun/service/antispam/text/v5/check/async/single"
|
||||
@@ -39,7 +40,7 @@ type DetectVideoReq struct {
|
||||
|
||||
// DetectText 文本检测
|
||||
func (c *yidunController) DetectText(ctx context.Context, req *DetectTextReq) (string, error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
businessId := g.Cfg().MustGet(ctx, "yidun.text.business_id").String()
|
||||
sdkReq := single.NewTextAsyncCheckRequest(businessId)
|
||||
@@ -57,13 +58,13 @@ func (c *yidunController) DetectText(ctx context.Context, req *DetectTextReq) (s
|
||||
|
||||
// DetectImage 图片检测
|
||||
func (c *yidunController) DetectImage(ctx context.Context, req *DetectImageReq) (*yidun.ImageSubmitResult, error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
return yidun.ImageDetection.DetectImage(ctx, req.ImageURL, req.DataID, req.CallbackURL)
|
||||
}
|
||||
|
||||
// DetectVideo 视频检测
|
||||
func (c *yidunController) DetectVideo(ctx context.Context, req *DetectVideoReq) (*yidun.VideoSubmitResult, error) {
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
return yidun.VideoDetection.DetectVideo(ctx, req.VideoURL, req.DataID, req.CallbackURL)
|
||||
}
|
||||
|
||||
@@ -76,13 +77,13 @@ type ImageCallbackResult struct {
|
||||
// ReceiveImageCallback 接收图片检测结果推送
|
||||
func (c *yidunController) ReceiveImageCallback(r *ghttp.Request) {
|
||||
// IP 白名单校验
|
||||
if !checkCallbackIP(r) {
|
||||
if !internal.CheckCallbackIP(r.Context()) {
|
||||
r.Response.WriteJson(ImageCallbackResult{Code: 403, Msg: "IP not allowed"})
|
||||
return
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
callbackData := r.GetForm("callbackData", "").String()
|
||||
if callbackData == "" {
|
||||
@@ -90,14 +91,14 @@ func (c *yidunController) ReceiveImageCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
err := yidun.ImageDetection.ProcessImageCallback(ctx, callbackData)
|
||||
err := serviceDataengine.MaterialVerify.ProcessImageCallback(ctx, callbackData)
|
||||
if err != nil {
|
||||
g.Log().Errorf(ctx, "处理图片检测回调失败: %v", err)
|
||||
r.Response.WriteJson(ImageCallbackResult{Code: 500, Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(ImageCallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(ImageCallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// VideoCallbackResult 视频检测回调响应
|
||||
@@ -109,13 +110,13 @@ type VideoCallbackResult struct {
|
||||
// ReceiveVideoCallback 接收视频检测结果推送
|
||||
func (c *yidunController) ReceiveVideoCallback(r *ghttp.Request) {
|
||||
// IP 白名单校验
|
||||
if !checkCallbackIP(r) {
|
||||
if !internal.CheckCallbackIP(r.Context()) {
|
||||
r.Response.WriteJson(VideoCallbackResult{Code: 403, Msg: "IP not allowed"})
|
||||
return
|
||||
}
|
||||
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
callbackData := r.GetForm("callbackData", "").String()
|
||||
if callbackData == "" {
|
||||
@@ -123,20 +124,20 @@ func (c *yidunController) ReceiveVideoCallback(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
err := yidun.VideoDetection.ProcessVideoCallback(ctx, callbackData)
|
||||
err := serviceDataengine.MaterialVerify.ProcessVideoCallback(ctx, callbackData)
|
||||
if err != nil {
|
||||
g.Log().Errorf(ctx, "处理视频检测回调失败: %v", err)
|
||||
r.Response.WriteJson(VideoCallbackResult{Code: 500, Msg: err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
r.Response.WriteJson(VideoCallbackResult{Code: 200, Msg: "success"})
|
||||
r.Response.WriteJson(VideoCallbackResult{Code: 0, Msg: "success"})
|
||||
}
|
||||
|
||||
// GetVideoResult 获取视频检测结果
|
||||
func (c *yidunController) GetVideoResult(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
taskId := r.Get("taskId", "").String()
|
||||
if taskId == "" {
|
||||
@@ -157,7 +158,7 @@ func (c *yidunController) GetVideoResult(r *ghttp.Request) {
|
||||
// GetImageResult 获取图片检测结果
|
||||
func (c *yidunController) GetImageResult(r *ghttp.Request) {
|
||||
ctx := r.Context()
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{UserName: "admin", TenantId: 1})
|
||||
ctx = internal.WithAdminUser(ctx)
|
||||
|
||||
taskId := r.Get("taskId", "").String()
|
||||
if taskId == "" {
|
||||
|
||||
Reference in New Issue
Block a user