public

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type OrderDetail

type OrderDetail struct {
	ID             int64
	ParentID       int64
	UserID         int64
	OrderNo        string
	Type           int32
	Quantity       int64
	Price          int64
	Amount         int64
	GiftAmount     int64
	Discount       int64
	Coupon         string
	CouponDiscount int64
	Commission     int64
	Payment        *PaymentMethod // Nested payment method object
	Method         string
	FeeAmount      int64
	TradeNo        string
	Status         int32
	SubscribeID    int64
	SubscribeToken string
	IsNew          bool
	CreatedAt      int64
	UpdatedAt      int64
	Subscribe      *Subscribe // Nested subscribe object
	// Additional fields for backward compatibility
	SubscribeName string
	PaymentName   string
	StatusText    string
	TypeText      string
}

OrderDetail represents order detail

type OrderRepo

type OrderRepo interface {
	// CloseOrder closes an order
	CloseOrder(ctx context.Context, userID int, orderNo string) error

	// QueryOrderDetail queries order detail
	QueryOrderDetail(ctx context.Context, userID int, orderNo string) (*OrderDetail, error)

	// QueryOrderList queries order list
	QueryOrderList(ctx context.Context, userID int, page, size int, status, orderType int32) ([]*OrderDetail, int32, error)

	// PreCreateOrder validates and calculates order price
	PreCreateOrder(ctx context.Context, req *PreCreateOrderParams) (*PreCreateOrderResult, error)

	// Purchase creates a purchase order
	Purchase(ctx context.Context, req *PurchaseParams) (*OrderResult, error)

	// Recharge creates a recharge order
	Recharge(ctx context.Context, req *RechargeParams) (*OrderResult, error)

	// Renewal creates a renewal order
	Renewal(ctx context.Context, req *RenewalParams) (*OrderResult, error)

	// ResetTraffic creates a reset traffic order
	ResetTraffic(ctx context.Context, req *ResetTrafficParams) (*OrderResult, error)
}

OrderRepo is the interface for order data access

type OrderResult

type OrderResult struct {
	OrderID    int64
	OrderNo    string
	Amount     int64
	PaymentURL string
	QRCode     string
}

OrderResult represents order creation result

type OrderUsecase

type OrderUsecase struct {
	// contains filtered or unexported fields
}

OrderUsecase is the usecase for public order operations

func NewOrderUsecase

func NewOrderUsecase(repo OrderRepo, logger log.Logger) *OrderUsecase

NewOrderUsecase creates a new OrderUsecase

func (*OrderUsecase) CloseOrder

func (uc *OrderUsecase) CloseOrder(ctx context.Context, userID int, orderNo string) error

CloseOrder closes an order

func (*OrderUsecase) PreCreateOrder

func (uc *OrderUsecase) PreCreateOrder(ctx context.Context, req *PreCreateOrderParams) (*PreCreateOrderResult, error)

PreCreateOrder validates and calculates order price

func (*OrderUsecase) Purchase

func (uc *OrderUsecase) Purchase(ctx context.Context, req *PurchaseParams) (*OrderResult, error)

Purchase creates a purchase order

func (*OrderUsecase) QueryOrderDetail

func (uc *OrderUsecase) QueryOrderDetail(ctx context.Context, userID int, orderNo string) (*OrderDetail, error)

QueryOrderDetail queries order detail

func (*OrderUsecase) QueryOrderList

func (uc *OrderUsecase) QueryOrderList(ctx context.Context, userID int, page, size int, status, orderType int32) ([]*OrderDetail, int32, error)

QueryOrderList queries order list

func (*OrderUsecase) Recharge

func (uc *OrderUsecase) Recharge(ctx context.Context, req *RechargeParams) (*OrderResult, error)

Recharge creates a recharge order

func (*OrderUsecase) Renewal

func (uc *OrderUsecase) Renewal(ctx context.Context, req *RenewalParams) (*OrderResult, error)

Renewal creates a renewal order

func (*OrderUsecase) ResetTraffic

func (uc *OrderUsecase) ResetTraffic(ctx context.Context, req *ResetTrafficParams) (*OrderResult, error)

ResetTraffic creates a reset traffic order

type PaymentMethod

type PaymentMethod struct {
	ID          int64
	Name        string
	Platform    string
	Description string
	Icon        string
	FeeMode     int32
	FeePercent  int64
	FeeAmount   int64
}

PaymentMethod represents payment method

type PreCreateOrderParams

type PreCreateOrderParams struct {
	UserID           int64
	Type             int32
	SubscribeID      int64
	SubscribeGroupID int64
	Quantity         int64
	Coupon           string
	Payment          int64
}

PreCreateOrderParams represents pre-create order parameters

type PreCreateOrderResult

type PreCreateOrderResult struct {
	Price          int64
	Amount         int64
	Discount       int64
	CouponDiscount int64
	FeeAmount      int64
	Commission     int64
	GiftAmount     int64
	Valid          bool
	Message        string
}

PreCreateOrderResult represents pre-create order result

type PurchaseParams

type PurchaseParams struct {
	UserID      int64
	SubscribeID int64
	Quantity    int64
	Coupon      string
	Payment     int64
}

PurchaseParams represents purchase parameters

type RechargeParams

type RechargeParams struct {
	UserID  int64
	Amount  int64
	Payment int64
}

RechargeParams represents recharge parameters

type RenewalParams

type RenewalParams struct {
	UserID          int64
	UserSubscribeID int64
	Quantity        int64
	Coupon          string
	Payment         int64
}

RenewalParams represents renewal parameters

type ResetTrafficParams

type ResetTrafficParams struct {
	UserID          int64
	UserSubscribeID int64
	Payment         int64
}

ResetTrafficParams represents reset traffic parameters

type Subscribe

type Subscribe struct {
	ID                int64
	Name              string
	Language          string
	Description       string
	UnitPrice         int64
	UnitTime          string
	Discount          []SubscribeDiscount
	Replacement       int64
	Inventory         int64
	Traffic           int64
	SpeedLimit        int64
	DeviceLimit       int64
	Quota             int64
	Nodes             []int
	NodeTags          []string
	Show              bool
	Sell              bool
	Sort              int64
	DeductionRatio    int64
	AllowDeduction    bool
	NodeGroupIds      []string
	NodeGroupId       string
	ResetCycle        int64
	RenewalReset      bool
	ShowOriginalPrice bool
	CreatedAt         int64
	UpdatedAt         int64
}

Subscribe represents subscribe

type SubscribeDiscount

type SubscribeDiscount struct {
	Quantity int64
	Discount int64
}

SubscribeDiscount represents subscribe discount

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL