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 IDciUser interface { AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserResponse, err error) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateDciUserResponse, err error) QueryDciUser(req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error) } type DciUser struct { } // AddDciUser 著作权人 申领 DCI信息 func (u *DciUser) AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserResponse, err error) { res = new(dci.AddDciUserResponse) addDciUserRequest := new(bccrClient.AddDciUserRequest) _ = copier.CopyWithOption(&addDciUserRequest, req, copier.Option{DeepCopy: true}) clientToken, err := createToken(time.Now().UnixMilli(), req.CertName, req.CertificateNumber, req.Phone, app.ModuleClients.SfNode.Generate().Base64()) if err != nil { return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ") } addDciUserRequest.SetClientToken(clientToken) addDciUserResponse, err := app.ModuleClients.BccrClient.AddDciUser(addDciUserRequest) if err != nil { return nil, err } _ = copier.CopyWithOption(&res, addDciUserResponse, copier.Option{DeepCopy: true}) return } // UpdateDciUser 著作权人 更新 DCI信息 func (u *DciUser) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateDciUserResponse, err error) { res = new(dci.UpdateDciUserResponse) updateDciUserRequest := new(bccrClient.UpdateDciUserRequest) _ = copier.CopyWithOption(&updateDciUserRequest, req, copier.Option{DeepCopy: true}) clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.CertFrontFileId, req.CertBackFileId, req.Phone, app.ModuleClients.SfNode.Generate().Base64()) if err != nil { return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ") } updateDciUserRequest.SetClientToken(clientToken) updateDciUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateDciUserRequest) if err != nil { return nil, err } _ = copier.CopyWithOption(&res, updateDciUserResponse, copier.Option{DeepCopy: true}) return } // QueryDciUser 著作权人 查询 DCI信息 func (u *DciUser) QueryDciUser(req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error) { res = new(dci.QueryDciUserResponse) queryDciUserRequest := new(bccrClient.QueryDciUserRequest) _ = copier.CopyWithOption(&queryDciUserRequest, req, copier.Option{DeepCopy: true}) queryDciUserResponse, err := app.ModuleClients.BccrClient.QueryDciUser(queryDciUserRequest) if err != nil { return nil, err } _ = copier.CopyWithOption(&res, queryDciUserResponse, copier.Option{DeepCopy: true}) return }