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

@@ -22,4 +22,10 @@ KqConsumerCharge:
Topic: apirequest
Offset: first
Consumers: 2 # 同样分配2个消费者
Processors: 2
Processors: 2
UserRpc:
Etcd:
Hosts:
- 127.0.0.1:2379
Key: user.rpc

View File

@@ -22,4 +22,10 @@ KqConsumerCharge:
Topic: apirequest
Offset: first
Consumers: 2 # 同样分配2个消费者
Processors: 2
Processors: 2
UserRpc:
Etcd:
Hosts:
- tyapi_etcd:2379
Key: user.rpc

View File

@@ -3,10 +3,12 @@ package config
import (
"github.com/zeromicro/go-queue/kq"
"github.com/zeromicro/go-zero/rest"
"github.com/zeromicro/go-zero/zrpc"
)
type Config struct {
rest.RestConf
KqConsumerLog kq.KqConf
KqConsumerCharge kq.KqConf
UserRpc zrpc.RpcClientConf
}

View File

@@ -2,8 +2,11 @@ package apirequest
import (
"context"
"encoding/json"
"github.com/zeromicro/go-zero/core/logx"
"tianyuan-api/apps/mqs/internal/svc"
"tianyuan-api/apps/user/user"
"tianyuan-api/pkg/models"
)
type Charge struct {
@@ -19,6 +22,18 @@ func NewCharge(ctx context.Context, svcCtx *svc.ServiceContext) *Charge {
}
func (l *Charge) Consume(ctx context.Context, key, val string) error {
logx.Infof("Charge key :%s , val :%s", key, val)
var apiRequestMessage models.ApiRequestMessage
err := json.Unmarshal([]byte(val), &apiRequestMessage)
if err != nil {
return err
}
logx.Infof("Charge val :%v", apiRequestMessage)
if !apiRequestMessage.Charges {
return nil
}
_, updateWalletErr := l.svcCtx.WalletRpc.UpdateWallet(ctx, &user.UpdateWalletRequest{UserId: apiRequestMessage.UserId, TransactionId: apiRequestMessage.TransactionID, ProductCode: apiRequestMessage.ProductCode, Remark: apiRequestMessage.Remark})
if updateWalletErr != nil {
return err
}
return nil
}

View File

@@ -2,8 +2,11 @@ package apirequest
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"encoding/json"
"tianyuan-api/apps/mqs/internal/svc"
"tianyuan-api/apps/user/user"
"tianyuan-api/pkg/models"
"time"
)
type Log struct {
@@ -19,6 +22,22 @@ func NewLog(ctx context.Context, svcCtx *svc.ServiceContext) *Log {
}
func (l *Log) Consume(ctx context.Context, key, val string) error {
logx.Infof("log key :%s , val :%s", key, val)
var apiRequestMessage models.ApiRequestMessage
err := json.Unmarshal([]byte(val), &apiRequestMessage)
if err != nil {
return err
}
_, err = l.svcCtx.ApiRequestRpc.AddApiRequest(ctx, &user.AddApiRequestRequest{
TransactionId: apiRequestMessage.TransactionID,
UserId: apiRequestMessage.UserId,
ProductCode: apiRequestMessage.ProductCode,
Status: apiRequestMessage.Status,
Charges: apiRequestMessage.Charges,
Remark: apiRequestMessage.Remark,
Timestamp: apiRequestMessage.Timestamp.Format(time.RFC3339Nano),
})
if err != nil {
return err
}
return nil
}

View File

@@ -1,13 +1,24 @@
package svc
import "tianyuan-api/apps/mqs/internal/config"
import (
"github.com/zeromicro/go-zero/zrpc"
"tianyuan-api/apps/mqs/internal/config"
"tianyuan-api/apps/user/user"
)
type ServiceContext struct {
Config config.Config
Config config.Config
WalletRpc user.WalletServiceClient
ApiRequestRpc user.ApiRequestServiceClient
}
func NewServiceContext(c config.Config) *ServiceContext {
walletRpc := user.NewWalletServiceClient(zrpc.MustNewClient(c.UserRpc).Conn())
apiRequestRpc := user.NewApiRequestServiceClient(zrpc.MustNewClient(c.UserRpc).Conn())
return &ServiceContext{
Config: c,
Config: c,
WalletRpc: walletRpc,
ApiRequestRpc: apiRequestRpc,
}
}