diff --git a/internal/controller/dci.go b/internal/controller/dci.go index 208a81a..8cbe228 100644 --- a/internal/controller/dci.go +++ b/internal/controller/dci.go @@ -20,7 +20,7 @@ type DciProvider struct { func (d *DciProvider) GetUploadUrl(_ context.Context, req *dci.GetUploadUrlRequest) (res *dci.GetUploadUrlResponse, err error) { res = new(dci.GetUploadUrlResponse) if req.FileName == "" { - return res, errCommon.ReturnError(errors.New(msg.ErrrFileIsEmpty), msg.ErrrFileIsEmpty, "未获取到相关文件 :") + return res, errCommon.ReturnError(errors.New(msg.ErrFileIsEmpty), msg.ErrFileIsEmpty, "未获取到相关文件 :") } res, err = d.file.Upload(req) diff --git a/internal/logic/dci.go b/internal/logic/dci.go index 3f466dd..4301bd8 100644 --- a/internal/logic/dci.go +++ b/internal/logic/dci.go @@ -31,13 +31,11 @@ type IDci interface { type Dci struct { } -func createToken(appID, appKey, channelId, userID, nonce string, timestamp int64) (token string, err error) { +func createToken(timestamp int64, keyword ...string) (token string, err error) { var b bytes.Buffer - b.WriteString(appID) - b.WriteString(appKey) - b.WriteString(channelId) - b.WriteString(userID) - b.WriteString(nonce) + for i := 0; i < len(keyword); i++ { + b.WriteString(keyword[i]) + } b.WriteString(fmt.Sprint(timestamp)) h := sha256.New() diff --git a/internal/logic/dci_registration.go b/internal/logic/dci_registration.go index f2e7e83..7a0ba12 100644 --- a/internal/logic/dci_registration.go +++ b/internal/logic/dci_registration.go @@ -3,8 +3,11 @@ 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 IDciRegistration interface { @@ -27,6 +30,12 @@ func (r *DciRegistration) CreateDciRegistration(req *dci.CreateDciRegistrationRe createDciRegistrationRequest := new(bccrClient.CreateDciRegistrationRequest) _ = copier.CopyWithOption(&createDciRegistrationRequest, req, copier.Option{DeepCopy: true}) + clientToken, err := createToken(time.Now().UnixMilli(), req.DciContentId, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ") + } + createDciRegistrationRequest.SetClientToken(clientToken) + createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciRegistration(createDciRegistrationRequest) if err != nil { return nil, err @@ -61,6 +70,12 @@ func (r *DciRegistration) GetDciPayUrl(req *dci.GetDciPayUrlRequest) (res *dci.G getDciPayUrlRequest := new(bccrClient.GetDciPayurlRequest) _ = copier.CopyWithOption(&getDciPayUrlRequest, req, copier.Option{DeepCopy: true}) + clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ") + } + getDciPayUrlRequest.SetClientToken(clientToken) + getDciPayUrlResponse, err := app.ModuleClients.BccrClient.GetDciPayurl(getDciPayUrlRequest) if err != nil { return nil, err @@ -95,6 +110,12 @@ func (r *DciRegistration) GetDciRegistrationcert(req *dci.GetDciRegistrationcert getDciRegistrationcertRequest := new(bccrClient.GetDciRegistrationcertRequest) _ = copier.CopyWithOption(&getDciRegistrationcertRequest, req, copier.Option{DeepCopy: true}) + clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ") + } + getDciRegistrationcertRequest.SetClientToken(clientToken) + getDciRegistrationcertResponse, err := app.ModuleClients.BccrClient.GetDciRegistrationcert(getDciRegistrationcertRequest) if err != nil { return nil, err @@ -112,6 +133,12 @@ func (r *DciRegistration) RetryDciRegistration(req *dci.RetryDciRegistrationRequ retryDciRegistrationRequest := new(bccrClient.RetryDciRegistrationRequest) _ = copier.CopyWithOption(&retryDciRegistrationRequest, req, copier.Option{DeepCopy: true}) + clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, req.DciContentId, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ") + } + retryDciRegistrationRequest.SetClientToken(clientToken) + retryDciRegistrationResponse, err := app.ModuleClients.BccrClient.RetryDciRegistration(retryDciRegistrationRequest) if err != nil { return nil, err @@ -129,6 +156,12 @@ func (r *DciRegistration) CloseDciRegistration(req *dci.CloseDciRegistrationRequ closeDciRegistrationRequest := new(bccrClient.CloseDciRegistrationRequest) _ = copier.CopyWithOption(&closeDciRegistrationRequest, req, copier.Option{DeepCopy: true}) + clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, req.Name, req.MobileNo, app.ModuleClients.SfNode.Generate().Base64()) + if err != nil { + return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ") + } + closeDciRegistrationRequest.SetClientToken(clientToken) + closeDciRegistrationResponse, err := app.ModuleClients.BccrClient.CloseDciRegistration(closeDciRegistrationRequest) if err != nil { return nil, err diff --git a/internal/logic/dci_user.go b/internal/logic/dci_user.go index 6aceee9..d9f725b 100644 --- a/internal/logic/dci_user.go +++ b/internal/logic/dci_user.go @@ -3,8 +3,11 @@ 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 { @@ -23,6 +26,12 @@ func (u *DciUser) AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserRes 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.ErrCreateToken, "创建CreateToken 失败: ") + } + addDciUserRequest.SetClientToken(clientToken) + addDciUserResponse, err := app.ModuleClients.BccrClient.AddDciUser(addDciUserRequest) if err != nil { return nil, err @@ -40,6 +49,12 @@ func (u *DciUser) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateD 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.ErrCreateToken, "创建CreateToken 失败: ") + } + updateDciUserRequest.SetClientToken(clientToken) + updateDciUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateDciUserRequest) if err != nil { return nil, err diff --git a/internal/logic/dci_work.go b/internal/logic/dci_work.go index 39a8d8e..1d7c4d3 100644 --- a/internal/logic/dci_work.go +++ b/internal/logic/dci_work.go @@ -3,8 +3,11 @@ 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 { @@ -22,6 +25,12 @@ func (w *DciWork) CreateDciPreregistration(req *dci.CreateDciPreregistrationRequ createDciPreregistrationRequest := new(bccrClient.CreateDciPreregistrationRequest) _ = copier.CopyWithOption(&createDciPreregistrationRequest, req, copier.Option{DeepCopy: true}) + 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.ErrCreateToken, "创建CreateToken 失败: ") + } + createDciPreregistrationRequest.SetClientToken(clientToken) + createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciPreregistration(createDciPreregistrationRequest) if err != nil { return nil, err diff --git a/internal/logic/file.go b/internal/logic/file.go index 6ab13e6..3b63ec4 100644 --- a/internal/logic/file.go +++ b/internal/logic/file.go @@ -10,6 +10,7 @@ import ( bccrClient "github.com/antchain-openapi-sdk-go/bccr/client" "github.com/jinzhu/copier" "strings" + "time" "unicode" ) @@ -65,6 +66,9 @@ func (f *File) Upload(req *dci.GetUploadUrlRequest) (res *dci.GetUploadUrlRespon getUploadUrlRequest.SetFileName(fileName) } + clientToken, err := createToken(time.Now().UnixMilli(), fileName, app.ModuleClients.SfNode.Generate().Base64()) + getUploadUrlRequest.SetClientToken(clientToken) + getUploadUrlResponse := GetUploadUrl(getUploadUrlRequest) //res = serializer.UploadUrlResponseToRpc(getUploadUrlResponse) res = new(dci.GetUploadUrlResponse) diff --git a/pkg/cache/redis.go b/pkg/cache/redis.go index 30b546c..b7f48b2 100644 --- a/pkg/cache/redis.go +++ b/pkg/cache/redis.go @@ -1,27 +1,24 @@ package cache import ( - dciConfig "chain-dci/config" - "github.com/dubbogo/gost/log/logger" "github.com/go-redis/redis" "github.com/google/wire" - "strconv" ) var RedisProvider = wire.NewSet(NewRedis) // TODO 添加连接池 func NewRedis() *redis.Client { - redisDb, _ := strconv.Atoi(dciConfig.Data.Redis.DB) - RedisClient := redis.NewClient(&redis.Options{ - Addr: dciConfig.Data.Redis.Addr, - Password: dciConfig.Data.Redis.Password, - DB: redisDb, - }) - _, err := RedisClient.Ping().Result() - if err != nil { - logger.Errorf("connRedis err", err) - panic(err) - } - return RedisClient + //redisDb, _ := strconv.Atoi(dciConfig.Data.Redis.DB) + //RedisClient := redis.NewClient(&redis.Options{ + // Addr: dciConfig.Data.Redis.Addr, + // Password: dciConfig.Data.Redis.Password, + // DB: redisDb, + //}) + //_, err := RedisClient.Ping().Result() + //if err != nil { + // logger.Errorf("connRedis err", err) + // panic(err) + //} + return nil } diff --git a/pkg/db/chainDci.go b/pkg/db/chainDci.go index 26cc92f..8bcaba3 100644 --- a/pkg/db/chainDci.go +++ b/pkg/db/chainDci.go @@ -1,18 +1,16 @@ package db import ( - dciConfig "chain-dci/config" "github.com/google/wire" "gorm.io/gorm" - "strings" ) -var MeetingProvider = wire.NewSet(NewDci) +var DciProvider = wire.NewSet(NewDci) func NewDci() *gorm.DB { - connOaMeeting := strings.Join([]string{dciConfig.Data.ChainDci.User, ":", dciConfig.Data.ChainDci.Password, - "@tcp(", dciConfig.Data.ChainDci.Host, ":", dciConfig.Data.ChainDci.Port, ")/", - dciConfig.Data.ChainDci.DbName, "?charset=utf8mb4&parseTime=true"}, "") - DbOaMeeting := loadMysqlConn(connOaMeeting) - return DbOaMeeting + //connOaMeeting := strings.Join([]string{dciConfig.Data.ChainDci.User, ":", dciConfig.Data.ChainDci.Password, + // "@tcp(", dciConfig.Data.ChainDci.Host, ":", dciConfig.Data.ChainDci.Port, ")/", + // dciConfig.Data.ChainDci.DbName, "?charset=utf8mb4&parseTime=true"}, "") + //DbOaMeeting := loadMysqlConn(connOaMeeting) + return nil } diff --git a/pkg/init/start.go b/pkg/init/start.go index 9826d6a..1d6c51b 100644 --- a/pkg/init/start.go +++ b/pkg/init/start.go @@ -1,7 +1,5 @@ package common -import "chain-dci/pkg/db" - func Init() { - db.DBMigration() + //db.DBMigration() } diff --git a/pkg/msg/dci_msg.go b/pkg/msg/dci_msg.go index ac27942..44c063d 100644 --- a/pkg/msg/dci_msg.go +++ b/pkg/msg/dci_msg.go @@ -1,5 +1,6 @@ package msg const ( - ErrrFileIsEmpty = "未获取到相关文件" + ErrFileIsEmpty = "未获取到相关文件" + ErrCreateToken = "创建CreateToken失败" ) diff --git a/pkg/snowf/snowflake.go b/pkg/snowf/snowflake.go index 6a47dd9..f0014ee 100644 --- a/pkg/snowf/snowflake.go +++ b/pkg/snowf/snowflake.go @@ -26,6 +26,11 @@ func NewSf() *snowflake.Node { } return node } -func GenID() int64 { + +func GenIDInt64() int64 { return app.ModuleClients.SfNode.Generate().Int64() } + +func GetIDBase64() string { + return app.ModuleClients.SfNode.Generate().Base64() +}