service/library/contentaudit/imageaudit/client.go

101 lines
3.4 KiB
Go

package imageaudit
import (
"service/bizcommon/util"
"service/dbstruct"
"service/library/configcenter"
"service/library/contentaudit/textaudit"
"service/library/logger"
"strings"
imageauditproto "service/api/proto/imageaudit/proto"
imageaudittaskproto "service/api/proto/imageaudittask/proto"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
imageaudit "github.com/alibabacloud-go/imageaudit-20191230/v3/client"
"github.com/alibabacloud-go/tea/tea"
"github.com/gin-gonic/gin"
)
// 数据库接口
type ImageAuditService interface {
OpCreate(ctx *gin.Context, req *imageauditproto.OpCreateReq) error
OpUpdate(ctx *gin.Context, req *imageauditproto.OpUpdateReq) error
OpDelete(ctx *gin.Context, id string) error
OpList(ctx *gin.Context, req *imageauditproto.OpListReq) (*dbstruct.ImageAudit, error)
OpCreateFragmentGroup(ctx *gin.Context, req *imageauditproto.OpCreateBatchReq) error
OpUpdateByIds(ctx *gin.Context, req *imageauditproto.OpUpdateByIdsReq) error
OpUpdateByBatchId(ctx *gin.Context, batchId string, imageaudit *dbstruct.ImageAudit) error
}
type ImageAuditTaskService interface {
OpCreate(ctx *gin.Context, req *imageaudittaskproto.OpCreateReq) error
OpUpdate(ctx *gin.Context, req *imageaudittaskproto.OpUpdateReq) error
OpDelete(ctx *gin.Context, id string) error
OpList(ctx *gin.Context, req *imageaudittaskproto.OpListReq) ([]*dbstruct.ImageAuditTask, error)
OpUpdateByIds(ctx *gin.Context, req *imageaudittaskproto.OpUpdateByIdsReq) error
OpUpdateByBatchId(ctx *gin.Context, batchId string, imageaudittask *dbstruct.ImageAuditTask) error
OpHandleOverdue(ctx *gin.Context, task *dbstruct.ImageAuditTask, batchId string) error
}
type ContentAuditRTIService interface {
GetAndUpdateImageAuditBatchId(ctx *gin.Context, batchId string) (string, error)
}
type ImageAuditTaskResultHandler interface {
Handle(ctx *gin.Context, task *dbstruct.ImageAuditTask, option int) error
}
var defaultImageAuditClient *imageaudit.Client
var _DefaultImageAudit ImageAuditService
var _DefaultImageAuditTask ImageAuditTaskService
var _DefaultResultHandler ImageAuditTaskResultHandler
var _DefaultContentAuditRTI ContentAuditRTIService
var scenes []*string
func Init(cfg *configcenter.ImageAuditConfig) (err error) {
config := &openapi.Config{
AccessKeyId: tea.String(cfg.AccessKeyId),
AccessKeySecret: tea.String(cfg.AccessKeySecret),
}
config.Endpoint = tea.String("imageaudit.cn-shanghai.aliyuncs.com")
defaultImageAuditClient, err = imageaudit.NewClient(config)
if err != nil {
logger.Error("NewImageAuditClient fail, cfg: %v, err: %v", util.ToJson(config), err)
return
}
// 让文字审核连接到这个服务
textaudit.ConnectToTextAuditClient(defaultImageAuditClient)
// 初始化审核选项
scenelist := strings.Split(cfg.Scenes, " ")
scenes = make([]*string, len(scenelist))
for i, scene := range scenelist {
scenes[i] = tea.String(scene)
}
// batch_id
_, err = RefreshBatchId()
if err != nil {
logger.Error("RefreshBatchId fail, cfg: %v, err: %v", util.ToJson(config), err)
return
}
return
}
func ConnectToImageAuditService(serivce ImageAuditService) {
_DefaultImageAudit = serivce
}
func ConnectToImageAuditTaskService(service ImageAuditTaskService, handler ImageAuditTaskResultHandler) {
_DefaultImageAuditTask = service
_DefaultResultHandler = handler
}
func ConnectToContentAuditRTIService(service ContentAuditRTIService) {
_DefaultContentAuditRTI = service
}