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