You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.7 KiB
Go

10 months ago
package logic
import (
"chain-dci/pb/dci"
"chain-dci/pkg/app"
10 months ago
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
10 months ago
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier"
10 months ago
"time"
10 months ago
)
type IDciWork interface {
CreateDciPreregistration(req *dci.CreateDciPreregistrationRequest) (res *dci.CreateDciPreregistrationResponse, err error)
QueryDciPreregistration(req *dci.QueryDciPreregistrationRequest) (res *dci.QueryDciPreregistrationResponse, err error)
}
type DciWork struct {
}
// CreateDciPreregistration 作品 申领 DCI
func (w *DciWork) CreateDciPreregistration(req *dci.CreateDciPreregistrationRequest) (res *dci.CreateDciPreregistrationResponse, err error) {
8 months ago
errCommon.NoReturnInfo(req, "作品 申领 DCI 参数信息: ")
10 months ago
res = new(dci.CreateDciPreregistrationResponse)
createDciPreregistrationRequest := new(bccrClient.CreateDciPreregistrationRequest)
8 months ago
_ = copier.CopyWithOption(&createDciPreregistrationRequest, req, copier.Option{DeepCopy: false})
10 months ago
10 months ago
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.WorkName, req.AuthorName, req.WorkFileId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
10 months ago
return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ")
10 months ago
}
createDciPreregistrationRequest.SetClientToken(clientToken)
10 months ago
createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciPreregistration(createDciPreregistrationRequest)
if err != nil {
8 months ago
return nil, errCommon.ReturnError(err, msg.ErrCreateDciPreregistration, "作品 申领 DCI 失败: ")
10 months ago
}
8 months ago
errCommon.NoReturnInfo(createDciPreregistrationResponse, "作品 申领 DCI 成功: ")
_ = copier.CopyWithOption(&res, createDciPreregistrationResponse, copier.Option{DeepCopy: false})
10 months ago
return
}
// QueryDciPreregistration 作品 查询 DCI
func (w *DciWork) QueryDciPreregistration(req *dci.QueryDciPreregistrationRequest) (res *dci.QueryDciPreregistrationResponse, err error) {
8 months ago
errCommon.NoReturnInfo(req, "作品 查询 DCI 参数信息: ")
10 months ago
res = new(dci.QueryDciPreregistrationResponse)
queryDciPreregistrationRequest := new(bccrClient.QueryDciPreregistrationRequest)
8 months ago
_ = copier.CopyWithOption(&queryDciPreregistrationRequest, req, copier.Option{DeepCopy: false})
10 months ago
queryDciPreregistrationResponse, err := app.ModuleClients.BccrClient.QueryDciPreregistration(queryDciPreregistrationRequest)
if err != nil {
8 months ago
return nil, errCommon.ReturnError(err, msg.ErrQueryDciPreregistration, "作品 查询 DCI 失败: ")
10 months ago
}
8 months ago
errCommon.NoReturnInfo(queryDciPreregistrationResponse, "作品 查询 DCI 成功: ")
_ = copier.CopyWithOption(&res, queryDciPreregistrationResponse, copier.Option{DeepCopy: false})
10 months ago
return
}