yidun送检功能
This commit is contained in:
85
model/entity/dataengine/material_verify_log.go
Normal file
85
model/entity/dataengine/material_verify_log.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package dataengine
|
||||
|
||||
import (
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
// MaterialVerifyLog 素材校验日志实体
|
||||
type MaterialVerifyLog struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
// 业务字段
|
||||
TenantID int64 `orm:"tenant_id" json:"tenantId" description:"租户ID"`
|
||||
MaterialType string `orm:"material_type" json:"materialType" description:"素材类型 IMAGE/VIDEO"`
|
||||
MaterialID string `orm:"material_id" json:"materialId" description:"素材ID"`
|
||||
SourceTable string `orm:"source_table" json:"sourceTable" description:"来源表"`
|
||||
SourceID int64 `orm:"source_id" json:"sourceId" description:"原表主键ID"`
|
||||
AccountID int64 `orm:"account_id" json:"accountId" description:"账户ID"`
|
||||
TaskID string `orm:"task_id" json:"taskId" description:"易盾任务ID"`
|
||||
RequestParams string `orm:"request_params" json:"requestParams" description:"请求入参"`
|
||||
ResponseResult string `orm:"response_result" json:"responseResult" description:"响应出参"`
|
||||
VerifyStatus string `orm:"verify_status" json:"verifyStatus" description:"校验状态"`
|
||||
Suggestion int `orm:"suggestion" json:"suggestion" description:"处置建议"`
|
||||
Label int `orm:"label" json:"label" description:"垃圾类型"`
|
||||
ResultType int `orm:"result_type" json:"resultType" description:"结果类型"`
|
||||
ErrorMsg string `orm:"error_msg" json:"errorMsg" description:"错误信息"`
|
||||
CheckTime int64 `orm:"check_time" json:"checkTime" description:"审核时间戳"`
|
||||
DurationMs int64 `orm:"duration_ms" json:"durationMs" description:"处理耗时(毫秒)"`
|
||||
|
||||
// 扩展字段(用于展示)
|
||||
PreviewURL string `orm:"-" json:"previewUrl" description:"预览URL"`
|
||||
}
|
||||
|
||||
// MaterialVerifyLogCol 日志表字段定义
|
||||
type MaterialVerifyLogCol struct {
|
||||
beans.SQLBaseCol
|
||||
TenantID string
|
||||
MaterialType string
|
||||
MaterialID string
|
||||
SourceTable string
|
||||
SourceID string
|
||||
AccountID string
|
||||
TaskID string
|
||||
RequestParams string
|
||||
ResponseResult string
|
||||
VerifyStatus string
|
||||
Suggestion string
|
||||
Label string
|
||||
ResultType string
|
||||
ErrorMsg string
|
||||
CheckTime string
|
||||
DurationMs string
|
||||
}
|
||||
|
||||
// MaterialVerifyLogCols 日志表字段常量
|
||||
var MaterialVerifyLogCols = MaterialVerifyLogCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
TenantID: "tenant_id",
|
||||
MaterialType: "material_type",
|
||||
MaterialID: "material_id",
|
||||
SourceTable: "source_table",
|
||||
SourceID: "source_id",
|
||||
AccountID: "account_id",
|
||||
TaskID: "task_id",
|
||||
RequestParams: "request_params",
|
||||
ResponseResult: "response_result",
|
||||
VerifyStatus: "verify_status",
|
||||
Suggestion: "suggestion",
|
||||
Label: "label",
|
||||
ResultType: "result_type",
|
||||
ErrorMsg: "error_msg",
|
||||
CheckTime: "check_time",
|
||||
DurationMs: "duration_ms",
|
||||
}
|
||||
|
||||
// 素材类型常量
|
||||
const (
|
||||
MaterialTypeImage = "IMAGE"
|
||||
MaterialTypeVideo = "VIDEO"
|
||||
)
|
||||
|
||||
// 校验状态常量
|
||||
const (
|
||||
VerifyStatusPending = "PENDING" // 待校验
|
||||
VerifyStatusVerified = "VERIFIED" // 校验通过
|
||||
VerifyStatusRejected = "REJECTED" // 校验不通过
|
||||
)
|
||||
62
model/entity/dataengine/tencent_content_check_log.go
Normal file
62
model/entity/dataengine/tencent_content_check_log.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package dataengine
|
||||
|
||||
import (
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
// TencentContentCheckLog 送检日志实体(来源:data-engine.tencent_content_check_log)
|
||||
type TencentContentCheckLog struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
// 来源标识
|
||||
SourceTable string `orm:"source_table" json:"sourceTable" description:"来源表标识:tencent_image/tencent_video"`
|
||||
SourceID int64 `orm:"source_id" json:"sourceId" description:"原数据ID(关联业务表数据)"`
|
||||
// 送检信息
|
||||
RequestURL string `orm:"request_url" json:"requestUrl" description:"送检请求路径(接口地址)"`
|
||||
RequestParam string `orm:"request_param" json:"requestParam" description:"送检入参(完整请求参数,JSON格式)"`
|
||||
ResponseData string `orm:"response_data" json:"responseData" description:"送检出参(完整接口返回结果,JSON格式)"`
|
||||
Status string `orm:"status" json:"status" description:"送检状态:pending-待送检, submitting-送检中, success-送检成功, failed-送检失败"`
|
||||
CheckTime int64 `orm:"check_time" json:"checkTime" description:"送检时间(时间戳,毫秒)"`
|
||||
FailReason string `orm:"fail_reason" json:"failReason" description:"失败原因(可选,记录接口报错信息)"`
|
||||
TaskID string `orm:"task_id" json:"taskId" description:"易盾返回的任务ID"`
|
||||
// 检测结果
|
||||
Suggestion int `orm:"suggestion" json:"suggestion" description:"检测结果建议:0-通过,1-嫌疑,2-不通过"`
|
||||
Label int `orm:"label" json:"label" description:"检测标签"`
|
||||
ResultType int `orm:"result_type" json:"resultType" description:"结果类型:1-机器结果,2-人审结果"`
|
||||
Duration int64 `orm:"duration" json:"duration" description:"送检耗时(毫秒)"`
|
||||
}
|
||||
|
||||
// TencentContentCheckLogCol 送检日志表字段定义
|
||||
type TencentContentCheckLogCol struct {
|
||||
beans.SQLBaseCol
|
||||
SourceTable string
|
||||
SourceID string
|
||||
RequestURL string
|
||||
RequestParam string
|
||||
ResponseData string
|
||||
Status string
|
||||
CheckTime string
|
||||
FailReason string
|
||||
TaskID string
|
||||
Suggestion string
|
||||
Label string
|
||||
ResultType string
|
||||
Duration string
|
||||
}
|
||||
|
||||
// TencentContentCheckLogCols 送检日志表字段常量
|
||||
var TencentContentCheckLogCols = TencentContentCheckLogCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
SourceTable: "source_table",
|
||||
SourceID: "source_id",
|
||||
RequestURL: "request_url",
|
||||
RequestParam: "request_param",
|
||||
ResponseData: "response_data",
|
||||
Status: "status",
|
||||
CheckTime: "check_time",
|
||||
FailReason: "fail_reason",
|
||||
TaskID: "task_id",
|
||||
Suggestion: "suggestion",
|
||||
Label: "label",
|
||||
ResultType: "result_type",
|
||||
Duration: "duration",
|
||||
}
|
||||
120
model/entity/dataengine/tencent_image.go
Normal file
120
model/entity/dataengine/tencent_image.go
Normal file
@@ -0,0 +1,120 @@
|
||||
package dataengine
|
||||
|
||||
import (
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
// TencentImage 图片素材实体(来源:data-engine.tencent_image)
|
||||
type TencentImage struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
// 业务字段 - 匹配现有表结构
|
||||
ImageID string `orm:"image_id" json:"imageId" description:"图片ID"`
|
||||
AccountID int64 `orm:"account_id" json:"accountId" description:"账户ID"`
|
||||
Width int `orm:"width" json:"width" description:"宽度"`
|
||||
Height int `orm:"height" json:"height" description:"高度"`
|
||||
FileSize int64 `orm:"file_size" json:"fileSize" description:"文件大小"`
|
||||
Type string `orm:"type" json:"type" description:"图片类型"`
|
||||
Signature string `orm:"signature" json:"signature" description:"签名"`
|
||||
Description string `orm:"description" json:"description" description:"描述"`
|
||||
SourceSignature string `orm:"source_signature" json:"sourceSignature" description:"源签名"`
|
||||
PreviewURL string `orm:"preview_url" json:"previewUrl" description:"预览URL"`
|
||||
ThumbPreviewURL string `orm:"thumb_preview_url" json:"thumbPreviewUrl" description:"缩略图URL"`
|
||||
SourceType string `orm:"source_type" json:"sourceType" description:"来源类型"`
|
||||
ImageUsage string `orm:"image_usage" json:"imageUsage" description:"图片用途"`
|
||||
CreatedTime int64 `orm:"created_time" json:"createdTime" description:"创建时间戳"`
|
||||
LastModifiedTime int64 `orm:"last_modified_time" json:"lastModifiedTime" description:"最后修改时间戳"`
|
||||
ProductCatalogID int64 `orm:"product_catalog_id" json:"productCatalogId" description:"产品目录ID"`
|
||||
ProductOuterID string `orm:"product_outer_id" json:"productOuterId" description:"产品外部ID"`
|
||||
SourceReferenceID string `orm:"source_reference_id" json:"sourceReferenceId" description:"源引用ID"`
|
||||
OwnerAccountID string `orm:"owner_account_id" json:"ownerAccountId" description:"所有者账户ID"`
|
||||
VerifyStatus string `orm:"verify_status" json:"verifyStatus" description:"审核状态"`
|
||||
SampleAspectRatio string `orm:"sample_aspect_ratio" json:"sampleAspectRatio" description:"示例宽高比"`
|
||||
SourceMaterialID string `orm:"source_material_id" json:"sourceMaterialId" description:"源素材ID"`
|
||||
NewSourceType string `orm:"new_source_type" json:"newSourceType" description:"新来源类型"`
|
||||
FirstPublicationStatus string `orm:"first_publication_status" json:"firstPublicationStatus" description:"首次发布状态"`
|
||||
QualityStatus string `orm:"quality_status" json:"qualityStatus" description:"质量状态"`
|
||||
SimilarityStatus string `orm:"similarity_status" json:"similarityStatus" description:"相似度状态"`
|
||||
UserAigcStatus string `orm:"user_aigc_status" json:"userAigcStatus" description:"用户AIGC状态"`
|
||||
SystemAigcStatus string `orm:"system_aigc_status" json:"systemAigcStatus" description:"系统AIGC状态"`
|
||||
AigcSource string `orm:"aigc_source" json:"aigcSource" description:"AIGC来源"`
|
||||
AigcFlag string `orm:"aigc_flag" json:"aigcFlag" description:"AIGC标志"`
|
||||
MuseAigcVersion int `orm:"muse_aigc_version" json:"museAigcVersion" description:"Muse AIGC版本"`
|
||||
AigcType int `orm:"aigc_type" json:"aigcType" description:"AIGC类型"`
|
||||
|
||||
// 内容检测相关字段(扩展字段,用于存储检测结果)
|
||||
// 注意:如果表中没有这些字段,需要通过 content_check_log 表来存储检测结果
|
||||
}
|
||||
|
||||
// TencentImageCol 图片素材表字段定义
|
||||
type TencentImageCol struct {
|
||||
beans.SQLBaseCol
|
||||
ImageID string
|
||||
AccountID string
|
||||
Width string
|
||||
Height string
|
||||
FileSize string
|
||||
Type string
|
||||
Signature string
|
||||
Description string
|
||||
SourceSignature string
|
||||
PreviewURL string
|
||||
ThumbPreviewURL string
|
||||
SourceType string
|
||||
ImageUsage string
|
||||
CreatedTime string
|
||||
LastModifiedTime string
|
||||
ProductCatalogID string
|
||||
ProductOuterID string
|
||||
SourceReferenceID string
|
||||
OwnerAccountID string
|
||||
VerifyStatus string
|
||||
SampleAspectRatio string
|
||||
SourceMaterialID string
|
||||
NewSourceType string
|
||||
FirstPublicationStatus string
|
||||
QualityStatus string
|
||||
SimilarityStatus string
|
||||
UserAigcStatus string
|
||||
SystemAigcStatus string
|
||||
AigcSource string
|
||||
AigcFlag string
|
||||
MuseAigcVersion string
|
||||
AigcType string
|
||||
}
|
||||
|
||||
// TencentImageCols 图片素材表字段常量
|
||||
var TencentImageCols = TencentImageCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
ImageID: "image_id",
|
||||
AccountID: "account_id",
|
||||
Width: "width",
|
||||
Height: "height",
|
||||
FileSize: "file_size",
|
||||
Type: "type",
|
||||
Signature: "signature",
|
||||
Description: "description",
|
||||
SourceSignature: "source_signature",
|
||||
PreviewURL: "preview_url",
|
||||
ThumbPreviewURL: "thumb_preview_url",
|
||||
SourceType: "source_type",
|
||||
ImageUsage: "image_usage",
|
||||
CreatedTime: "created_time",
|
||||
LastModifiedTime: "last_modified_time",
|
||||
ProductCatalogID: "product_catalog_id",
|
||||
ProductOuterID: "product_outer_id",
|
||||
SourceReferenceID: "source_reference_id",
|
||||
OwnerAccountID: "owner_account_id",
|
||||
VerifyStatus: "verify_status",
|
||||
SampleAspectRatio: "sample_aspect_ratio",
|
||||
SourceMaterialID: "source_material_id",
|
||||
NewSourceType: "new_source_type",
|
||||
FirstPublicationStatus: "first_publication_status",
|
||||
QualityStatus: "quality_status",
|
||||
SimilarityStatus: "similarity_status",
|
||||
UserAigcStatus: "user_aigc_status",
|
||||
SystemAigcStatus: "system_aigc_status",
|
||||
AigcSource: "aigc_source",
|
||||
AigcFlag: "aigc_flag",
|
||||
MuseAigcVersion: "muse_aigc_version",
|
||||
AigcType: "aigc_type",
|
||||
}
|
||||
159
model/entity/dataengine/tencent_video.go
Normal file
159
model/entity/dataengine/tencent_video.go
Normal file
@@ -0,0 +1,159 @@
|
||||
package dataengine
|
||||
|
||||
import (
|
||||
"gitea.com/red-future/common/beans"
|
||||
)
|
||||
|
||||
// TencentVideo 视频素材实体(来源:data-engine.tencent_video)
|
||||
type TencentVideo struct {
|
||||
beans.SQLBaseDO `orm:",inherit"`
|
||||
// 业务字段 - 匹配现有表结构
|
||||
VideoID string `orm:"video_id" json:"videoId" description:"视频ID"`
|
||||
AccountID int64 `orm:"account_id" json:"accountId" description:"账户ID"`
|
||||
Width int `orm:"width" json:"width" description:"宽度"`
|
||||
Height int `orm:"height" json:"height" description:"高度"`
|
||||
VideoFrames int `orm:"video_frames" json:"videoFrames" description:"视频帧数"`
|
||||
VideoFps int `orm:"video_fps" json:"videoFps" description:"帧率"`
|
||||
VideoCodec string `orm:"video_codec" json:"videoCodec" description:"视频编码"`
|
||||
VideoBitRate int64 `orm:"video_bit_rate" json:"videoBitRate" description:"视频码率"`
|
||||
AudioCodec string `orm:"audio_codec" json:"audioCodec" description:"音频编码"`
|
||||
AudioBitRate int64 `orm:"audio_bit_rate" json:"audioBitRate" description:"音频码率"`
|
||||
FileSize int64 `orm:"file_size" json:"fileSize" description:"文件大小"`
|
||||
Type string `orm:"type" json:"type" description:"媒体类型"`
|
||||
Signature string `orm:"signature" json:"signature" description:"签名"`
|
||||
SystemStatus string `orm:"system_status" json:"systemStatus" description:"系统状态"`
|
||||
Description string `orm:"description" json:"description" description:"描述"`
|
||||
PreviewURL string `orm:"preview_url" json:"previewUrl" description:"预览URL"`
|
||||
KeyFrameImageURL string `orm:"key_frame_image_url" json:"keyFrameImageUrl" description:"关键帧图片URL"`
|
||||
CreatedTime int64 `orm:"created_time" json:"createdTime" description:"创建时间戳"`
|
||||
LastModifiedTime int64 `orm:"last_modified_time" json:"lastModifiedTime" description:"最后修改时间戳"`
|
||||
VideoProfileName string `orm:"video_profile_name" json:"videoProfileName" description:"视频配置名称"`
|
||||
AudioSampleRate int `orm:"audio_sample_rate" json:"audioSampleRate" description:"音频采样率"`
|
||||
MaxKeyframeInterval int `orm:"max_keyframe_interval" json:"maxKeyframeInterval" description:"最大关键帧间隔"`
|
||||
MinKeyframeInterval int `orm:"min_keyframe_interval" json:"minKeyframeInterval" description:"最小关键帧间隔"`
|
||||
SampleAspectRatio string `orm:"sample_aspect_ratio" json:"sampleAspectRatio" description:"示例宽高比"`
|
||||
AudioProfileName string `orm:"audio_profile_name" json:"audioProfileName" description:"音频配置名称"`
|
||||
ScanType string `orm:"scan_type" json:"scanType" description:"扫描类型"`
|
||||
ImageDurationMs int64 `orm:"image_duration_millisecond" json:"imageDurationMs" description:"图片时长(毫秒)"`
|
||||
AudioDurationMs int64 `orm:"audio_duration_millisecond" json:"audioDurationMs" description:"音频时长(毫秒)"`
|
||||
SourceType string `orm:"source_type" json:"sourceType" description:"来源类型"`
|
||||
ProductCatalogID string `orm:"product_catalog_id" json:"productCatalogId" description:"产品目录ID"`
|
||||
ProductOuterID string `orm:"product_outer_id" json:"productOuterId" description:"产品外部ID"`
|
||||
SourceReferenceID string `orm:"source_reference_id" json:"sourceReferenceId" description:"源引用ID"`
|
||||
OwnerAccountID string `orm:"owner_account_id" json:"ownerAccountId" description:"所有者账户ID"`
|
||||
VerifyStatus string `orm:"verify_status" json:"verifyStatus" description:"审核状态"`
|
||||
SourceMaterialID string `orm:"source_material_id" json:"sourceMaterialId" description:"源素材ID"`
|
||||
NewSourceType string `orm:"new_source_type" json:"newSourceType" description:"新来源类型"`
|
||||
AigcType int `orm:"aigc_type" json:"aigcType" description:"AIGC类型"`
|
||||
FirstPublicationStatus string `orm:"first_publication_status" json:"firstPublicationStatus" description:"首次发布状态"`
|
||||
QualityStatus string `orm:"quality_status" json:"qualityStatus" description:"质量状态"`
|
||||
CoverID string `orm:"cover_id" json:"coverId" description:"封面ID"`
|
||||
SimilarityStatus string `orm:"similarity_status" json:"similarityStatus" description:"相似度状态"`
|
||||
UserAigcStatus string `orm:"user_aigc_status" json:"userAigcStatus" description:"用户AIGC状态"`
|
||||
SystemAigcStatus string `orm:"system_aigc_status" json:"systemAigcStatus" description:"系统AIGC状态"`
|
||||
AigcSource string `orm:"aigc_source" json:"aigcSource" description:"AIGC来源"`
|
||||
AigcFlag string `orm:"aigc_flag" json:"aigcFlag" description:"AIGC标志"`
|
||||
MuseAigcVersion int `orm:"muse_aigc_version" json:"museAigcVersion" description:"Muse AIGC版本"`
|
||||
}
|
||||
|
||||
// TencentVideoCol 视频素材表字段定义
|
||||
type TencentVideoCol struct {
|
||||
beans.SQLBaseCol
|
||||
VideoID string
|
||||
AccountID string
|
||||
Width string
|
||||
Height string
|
||||
VideoFrames string
|
||||
VideoFps string
|
||||
VideoCodec string
|
||||
VideoBitRate string
|
||||
AudioCodec string
|
||||
AudioBitRate string
|
||||
FileSize string
|
||||
Type string
|
||||
Signature string
|
||||
SystemStatus string
|
||||
Description string
|
||||
PreviewURL string
|
||||
KeyFrameImageURL string
|
||||
CreatedTime string
|
||||
LastModifiedTime string
|
||||
VideoProfileName string
|
||||
AudioSampleRate string
|
||||
MaxKeyframeInterval string
|
||||
MinKeyframeInterval string
|
||||
SampleAspectRatio string
|
||||
AudioProfileName string
|
||||
ScanType string
|
||||
ImageDurationMs string
|
||||
AudioDurationMs string
|
||||
SourceType string
|
||||
ProductCatalogID string
|
||||
ProductOuterID string
|
||||
SourceReferenceID string
|
||||
OwnerAccountID string
|
||||
VerifyStatus string
|
||||
SourceMaterialID string
|
||||
NewSourceType string
|
||||
AigcType string
|
||||
FirstPublicationStatus string
|
||||
QualityStatus string
|
||||
CoverID string
|
||||
SimilarityStatus string
|
||||
UserAigcStatus string
|
||||
SystemAigcStatus string
|
||||
AigcSource string
|
||||
AigcFlag string
|
||||
MuseAigcVersion string
|
||||
}
|
||||
|
||||
// TencentVideoCols 视频素材表字段常量
|
||||
var TencentVideoCols = TencentVideoCol{
|
||||
SQLBaseCol: beans.DefSQLBaseCol,
|
||||
VideoID: "video_id",
|
||||
AccountID: "account_id",
|
||||
Width: "width",
|
||||
Height: "height",
|
||||
VideoFrames: "video_frames",
|
||||
VideoFps: "video_fps",
|
||||
VideoCodec: "video_codec",
|
||||
VideoBitRate: "video_bit_rate",
|
||||
AudioCodec: "audio_codec",
|
||||
AudioBitRate: "audio_bit_rate",
|
||||
FileSize: "file_size",
|
||||
Type: "type",
|
||||
Signature: "signature",
|
||||
SystemStatus: "system_status",
|
||||
Description: "description",
|
||||
PreviewURL: "preview_url",
|
||||
KeyFrameImageURL: "key_frame_image_url",
|
||||
CreatedTime: "created_time",
|
||||
LastModifiedTime: "last_modified_time",
|
||||
VideoProfileName: "video_profile_name",
|
||||
AudioSampleRate: "audio_sample_rate",
|
||||
MaxKeyframeInterval: "max_keyframe_interval",
|
||||
MinKeyframeInterval: "min_keyframe_interval",
|
||||
SampleAspectRatio: "sample_aspect_ratio",
|
||||
AudioProfileName: "audio_profile_name",
|
||||
ScanType: "scan_type",
|
||||
ImageDurationMs: "image_duration_millisecond",
|
||||
AudioDurationMs: "audio_duration_millisecond",
|
||||
SourceType: "source_type",
|
||||
ProductCatalogID: "product_catalog_id",
|
||||
ProductOuterID: "product_outer_id",
|
||||
SourceReferenceID: "source_reference_id",
|
||||
OwnerAccountID: "owner_account_id",
|
||||
VerifyStatus: "verify_status",
|
||||
SourceMaterialID: "source_material_id",
|
||||
NewSourceType: "new_source_type",
|
||||
AigcType: "aigc_type",
|
||||
FirstPublicationStatus: "first_publication_status",
|
||||
QualityStatus: "quality_status",
|
||||
CoverID: "cover_id",
|
||||
SimilarityStatus: "similarity_status",
|
||||
UserAigcStatus: "user_aigc_status",
|
||||
SystemAigcStatus: "system_aigc_status",
|
||||
AigcSource: "aigc_source",
|
||||
AigcFlag: "aigc_flag",
|
||||
MuseAigcVersion: "muse_aigc_version",
|
||||
}
|
||||
Reference in New Issue
Block a user