package topup import ( "context" "errors" "tianyuan-api/apps/sentinel/sentinel" "tianyuan-api/apps/gateway/internal/svc" "tianyuan-api/apps/gateway/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type AliTopUpLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewAliTopUpLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AliTopUpLogic { return &AliTopUpLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *AliTopUpLogic) AliTopUp(req *types.AliTopUpRequest) (resp *types.AliTopUpResponse, err error) { userId, ok := l.ctx.Value("userId").(int64) if !ok { return nil, errors.New("无法获取 userId") } up, err := l.svcCtx.TopUpRpc.AliTopUp(l.ctx, &sentinel.AliTopUpRequest{UserId: userId, Amount: req.Amount}) if err != nil { return nil, err } return &types.AliTopUpResponse{ PayUrl: up.PayUrl, }, nil }