This commit is contained in:
2024-10-12 20:41:55 +08:00
parent 8c09120db6
commit 597e4f1b89
75 changed files with 5009 additions and 823 deletions

View File

@@ -9,18 +9,29 @@ import (
"tianyuan-api/apps/api/internal/middleware"
"tianyuan-api/apps/api/internal/service"
"tianyuan-api/apps/sentinel/sentinel"
"tianyuan-api/apps/user/user"
"time"
)
type ServiceContext struct {
Config config.Config
ApiAuthInterceptor rest.Middleware
Redis *redis.Redis
WhitelistRpc sentinel.WhitelistClient
SecretRpc sentinel.SecretClient
ProductRpc sentinel.ProductClient
UserProductRpc sentinel.UserProductClient
KqPusherClient *kq.Pusher
WestDexService *service.WestDexService
Config config.Config
ApiAuthInterceptor rest.Middleware
ApiMqsInterceptor rest.Middleware
Redis *redis.Redis
WhitelistRpc sentinel.WhitelistClient
SecretRpc sentinel.SecretClient
ProductRpc sentinel.ProductClient
UserProductRpc sentinel.UserProductClient
WestDexService *service.WestDexService
ApiRequestMqsService *service.ApiRequestMqsService
}
type ApiRequestMessage struct {
TransactionID string `json:"transactionID"`
UserId string `json:"userId"`
ProductCode string `json:"productCode"`
Status string `json:"status"` // 1. success 2. error
Charges bool `json:"charges"` // 是否扣费
Timestamp time.Time `json:"timestamp"` // 添加时间戳
}
func NewServiceContext(c config.Config) *ServiceContext {
@@ -36,15 +47,19 @@ func NewServiceContext(c config.Config) *ServiceContext {
userProductRpc := sentinel.NewUserProductClient(zrpc.MustNewClient(c.SentinelRpc).Conn())
whitelistRpc := sentinel.NewWhitelistClient(zrpc.MustNewClient(c.SentinelRpc).Conn())
secretRpc := sentinel.NewSecretClient(zrpc.MustNewClient(c.SentinelRpc).Conn())
userRpc := user.NewUserClient(zrpc.MustNewClient(c.UserRpc).Conn())
KqPusherClient := kq.NewPusher(c.KqPusherConf.Brokers, c.KqPusherConf.Topic)
apiRequestMqsService := service.NewApiRequestMqsService(KqPusherClient)
return &ServiceContext{
Config: c,
Redis: rds,
WhitelistRpc: whitelistRpc,
SecretRpc: secretRpc,
ProductRpc: productRpc,
UserProductRpc: userProductRpc,
ApiAuthInterceptor: middleware.NewApiAuthInterceptorMiddleware(whitelistRpc, secretRpc, userProductRpc, rds).Handle,
KqPusherClient: kq.NewPusher(c.KqPusherConf.Brokers, c.KqPusherConf.Topic),
WestDexService: service.NewWestDexService(c.WestConfig), // 假设你将密钥和 ID 配置在 config 中
Config: c,
Redis: rds,
WhitelistRpc: whitelistRpc,
SecretRpc: secretRpc,
ProductRpc: productRpc,
UserProductRpc: userProductRpc,
ApiAuthInterceptor: middleware.NewApiAuthInterceptorMiddleware(whitelistRpc, secretRpc, userProductRpc, userRpc, rds).Handle,
ApiMqsInterceptor: middleware.NewApiMqsInterceptorMiddleware(apiRequestMqsService).Handle,
ApiRequestMqsService: apiRequestMqsService,
WestDexService: service.NewWestDexService(c.WestConfig), // 假设你将密钥和 ID 配置在 config 中
}
}