chain-dci/internal/logic/dci_user.go

128 lines
5.1 KiB
Go
Raw Normal View History

2023-11-23 12:06:14 +00:00
package logic
import (
"chain-dci/pb/dci"
"chain-dci/pkg/app"
2023-11-27 02:03:39 +00:00
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
"time"
2023-11-23 12:06:14 +00:00
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier"
)
type IDciUser interface {
AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserResponse, err error)
UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateDciUserResponse, err error)
UpdateDciEnterpriseUser(req *dci.UpdateDciEnterpriseUserRequest) (res *dci.UpdateDciEnterpriseUserResponse, err error)
2023-11-23 12:06:14 +00:00
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) {
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(req, "著作权人 申领 DCI信息 参数信息: ")
2023-11-23 12:06:14 +00:00
res = new(dci.AddDciUserResponse)
addDciUserRequest := new(bccrClient.AddDciUserRequest)
2024-01-11 04:14:53 +00:00
_ = copier.CopyWithOption(&addDciUserRequest, req, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
2023-11-27 02:03:39 +00:00
clientToken, err := createToken(time.Now().UnixMilli(), req.CertName, req.CertificateNumber, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
2023-11-27 02:06:23 +00:00
return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ")
2023-11-27 02:03:39 +00:00
}
addDciUserRequest.SetClientToken(clientToken)
2023-11-23 12:06:14 +00:00
addDciUserResponse, err := app.ModuleClients.BccrClient.AddDciUser(addDciUserRequest)
if err != nil {
2024-01-11 04:14:53 +00:00
return nil, errCommon.ReturnError(err, msg.ErrAddDciUser, "著作权人 申领 DCI信息 失败: ")
2023-11-23 12:06:14 +00:00
}
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(addDciUserResponse, "著作权人 申领 DCI信息 成功: ")
_ = copier.CopyWithOption(&res, addDciUserResponse, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
return
}
// UpdateDciUser 著作权人 更新 DCI信息
func (u *DciUser) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateDciUserResponse, err error) {
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(req, "著作权人 更新 DCI信息 参数信息: ")
2023-11-23 12:06:14 +00:00
res = new(dci.UpdateDciUserResponse)
updateDciUserRequest := new(bccrClient.UpdateDciUserRequest)
2024-01-11 04:14:53 +00:00
_ = copier.CopyWithOption(&updateDciUserRequest, req, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
2023-11-27 02:03:39 +00:00
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.CertFrontFileId, req.CertBackFileId, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
2023-11-27 02:06:23 +00:00
return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建clientToken 失败: ")
2023-11-27 02:03:39 +00:00
}
updateDciUserRequest.SetClientToken(clientToken)
2023-11-23 12:06:14 +00:00
updateDciUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateDciUserRequest)
if err != nil {
2024-01-11 04:14:53 +00:00
return nil, errCommon.ReturnError(err, msg.ErrUpdateDciUser, "著作权人 更新 DCI信息 失败: ")
2023-11-23 12:06:14 +00:00
}
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(updateDciUserResponse, "著作权人 更新 DCI信息 成功: ")
_ = copier.CopyWithOption(&res, updateDciUserResponse, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
return
}
// UpdateDciEnterpriseUser 企业著作权人 更新 DCI信息
func (u *DciUser) UpdateDciEnterpriseUser(req *dci.UpdateDciEnterpriseUserRequest) (res *dci.UpdateDciEnterpriseUserResponse, err error) {
errCommon.NoReturnInfo(req, "企业著作权人 更新 DCI信息 参数信息: ")
res = new(dci.UpdateDciEnterpriseUserResponse)
// 创建企业用户更新请求使用AddDciUser的结构但设置为更新模式
updateEnterpriseUserRequest := new(bccrClient.UpdateDciUserRequest)
_ = copier.CopyWithOption(&updateEnterpriseUserRequest, req, copier.Option{DeepCopy: false})
// 创建clientToken包含企业特有信息
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.CertificateFrontFileId, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateClientToken, "创建企业用户clientToken 失败: ")
}
updateEnterpriseUserRequest.SetClientToken(clientToken)
// 调用底层API
updateEnterpriseUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateEnterpriseUserRequest)
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrUpdateDciUser, "企业著作权人 更新 DCI信息 失败: ")
}
errCommon.NoReturnInfo(updateEnterpriseUserResponse, "企业著作权人 更新 DCI信息 成功: ")
_ = copier.CopyWithOption(&res, updateEnterpriseUserResponse, copier.Option{DeepCopy: false})
return
}
2023-11-23 12:06:14 +00:00
// QueryDciUser 著作权人 查询 DCI信息
func (u *DciUser) QueryDciUser(req *dci.QueryDciUserRequest) (res *dci.QueryDciUserResponse, err error) {
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(req, "著作权人 查询 DCI信息 参数信息: ")
2023-11-23 12:06:14 +00:00
res = new(dci.QueryDciUserResponse)
queryDciUserRequest := new(bccrClient.QueryDciUserRequest)
2024-01-11 04:14:53 +00:00
_ = copier.CopyWithOption(&queryDciUserRequest, req, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
queryDciUserResponse, err := app.ModuleClients.BccrClient.QueryDciUser(queryDciUserRequest)
if err != nil {
2024-01-11 04:14:53 +00:00
return nil, errCommon.ReturnError(err, msg.ErrQueryDciUser, "著作权人 查询 DCI信息 失败: ")
2023-11-23 12:06:14 +00:00
}
2024-01-11 04:14:53 +00:00
errCommon.NoReturnInfo(queryDciUserResponse, "著作权人 查询 DCI信息 成功: ")
_ = copier.CopyWithOption(&res, queryDciUserResponse, copier.Option{DeepCopy: false})
2023-11-23 12:06:14 +00:00
return
}