优化结构

This commit is contained in:
Yvan
2026-08-28 00:29:40 +08:00
parent 04ff85116c
commit 03a4131f6e
118 changed files with 758 additions and 834 deletions
+18 -14
View File
@@ -14,18 +14,17 @@ import (
"strings"
"time"
datapayment "kra/internal/integration/payment"
"github.com/google/uuid"
)
type paymentRepo struct {
data Provider
config integrationbiz.PaymentConfigReader
data Provider
config integrationbiz.PaymentConfigReader
factory bizpayment.PaymentAdapterFactory
}
func NewPaymentRepo(data Provider, config integrationbiz.PaymentConfigReader) bizpayment.PaymentRepo {
return &paymentRepo{data: data, config: config}
func NewPaymentRepo(data Provider, config integrationbiz.PaymentConfigReader, factory bizpayment.PaymentAdapterFactory) bizpayment.PaymentRepo {
return &paymentRepo{data: data, config: config, factory: factory}
}
func (r *paymentRepo) values(ctx context.Context, provider string) (map[string]any, error) {
@@ -49,12 +48,15 @@ func (r *paymentRepo) values(ctx context.Context, provider string) (map[string]a
return values, nil
}
func (r *paymentRepo) adapter(ctx context.Context, provider string) (datapayment.Adapter, map[string]any, error) {
func (r *paymentRepo) adapter(ctx context.Context, provider string) (bizpayment.PaymentAdapter, map[string]any, error) {
values, err := r.values(ctx, provider)
if err != nil {
return nil, nil, err
}
adapter, err := datapayment.New(provider)
if r.factory == nil {
return nil, nil, errors.New("支付渠道适配器未接入")
}
adapter, err := r.factory.New(provider)
return adapter, values, err
}
@@ -81,7 +83,13 @@ func (r *paymentRepo) TestProvider(ctx context.Context, provider string) (*bizpa
return test, err
}
adapter, err := datapayment.New(provider)
if r.factory == nil {
err = errors.New("支付渠道适配器未接入")
}
var adapter bizpayment.PaymentAdapter
if err == nil {
adapter, err = r.factory.New(provider)
}
if err != nil {
add("adapter", "failed", err.Error(), "", time.Now())
return test, err
@@ -237,7 +245,7 @@ func validatePaymentTestResult(provider, tradeNo string, result *bizpayment.Paym
return nil
}
func queryPaymentTest(ctx context.Context, adapter datapayment.Adapter, queryID string, values map[string]any) (*bizpayment.PaymentResult, error) {
func queryPaymentTest(ctx context.Context, adapter bizpayment.PaymentAdapter, queryID string, values map[string]any) (*bizpayment.PaymentResult, error) {
var result *bizpayment.PaymentResult
var err error
for attempt := 0; attempt < 3; attempt++ {
@@ -547,7 +555,3 @@ func contains(values []string, value string) bool {
}
return false
}
func validatePaymentConfig(provider string, values map[string]any) error {
return integrationbiz.ValidateIntegrationConfig(integrationbiz.IntegrationKindPayment, provider, values)
}