50 lines
2.4 KiB
Go
50 lines
2.4 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"kra/internal/biz"
|
|
"kra/internal/service/dto"
|
|
)
|
|
|
|
type PaymentService struct{ uc *biz.PaymentUsecase }
|
|
|
|
func NewPaymentService(uc *biz.PaymentUsecase) *PaymentService { return &PaymentService{uc: uc} }
|
|
func (s *PaymentService) Configs(ctx context.Context) ([]*biz.PaymentConfig, error) {
|
|
return s.uc.Configs(ctx)
|
|
}
|
|
func (s *PaymentService) SaveConfig(ctx context.Context, c *biz.PaymentConfig) error {
|
|
return s.uc.SaveConfig(ctx, c)
|
|
}
|
|
func (s *PaymentService) Order(ctx context.Context, provider, tradeNo string) (*dto.PaymentOrderResponse, error) {
|
|
order, err := s.uc.Order(ctx, provider, tradeNo)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &dto.PaymentOrderResponse{
|
|
Provider: order.Provider, TradeNo: order.TradeNo, ProviderTradeNo: order.ProviderTradeNo,
|
|
BusinessType: order.BusinessType, BusinessID: order.BusinessID, Subject: order.Subject,
|
|
PaymentMode: order.PaymentMode, OriginalAmount: order.OriginalAmount,
|
|
Amount: order.Amount, PaidAmount: order.PaidAmount, PayerPaidAmount: order.PayerPaidAmount,
|
|
CashPaidAmount: order.CashPaidAmount, PointPaidAmount: order.PointPaidAmount,
|
|
DiscountAmount: order.DiscountAmount, ProviderDiscountAmount: order.ProviderDiscountAmount,
|
|
MerchantDiscountAmount: order.MerchantDiscountAmount, SettlementAmount: order.SettlementAmount,
|
|
Currency: order.Currency, PayerCurrency: order.PayerCurrency, AmountBreakdownKnown: order.AmountBreakdownKnown,
|
|
PaymentStatus: order.PaymentStatus, FulfillmentStatus: order.FulfillmentStatus,
|
|
RefundStatus: order.RefundStatus, RefundedAmount: order.RefundedAmount, RefundNo: order.RefundNo,
|
|
CreatedAt: order.CreatedAt, UpdatedAt: order.UpdatedAt, PaidAt: order.PaidAt,
|
|
FulfilledAt: order.FulfilledAt, RefundedAt: order.RefundedAt,
|
|
}, nil
|
|
}
|
|
func (s *PaymentService) Create(ctx context.Context, req *biz.PaymentRequest) (*biz.PaymentResult, error) {
|
|
return s.uc.Create(ctx, req)
|
|
}
|
|
func (s *PaymentService) Query(ctx context.Context, provider, tradeNo string) (*biz.PaymentResult, error) {
|
|
return s.uc.Query(ctx, provider, tradeNo)
|
|
}
|
|
func (s *PaymentService) Refund(ctx context.Context, provider, tradeNo string, amount int64) (*biz.PaymentResult, error) {
|
|
return s.uc.Refund(ctx, provider, tradeNo, amount)
|
|
}
|
|
func (s *PaymentService) Callback(ctx context.Context, callback *biz.PaymentCallback) (*biz.PaymentResult, error) {
|
|
return s.uc.Callback(ctx, callback)
|
|
}
|