mirror of
https://github.com/TeaOSLab/EdgeCommon.git
synced 2025-11-12 03:10:24 +08:00
实现用户订单、在线支付接口(商业版可用)
This commit is contained in:
6340
build/rpc.json
6340
build/rpc.json
File diff suppressed because it is too large
Load Diff
204
pkg/rpc/pb/model_order_method.pb.go
Normal file
204
pkg/rpc/pb/model_order_method.pb.go
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.25.0
|
||||||
|
// protoc v3.19.4
|
||||||
|
// source: models/model_order_method.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
proto "github.com/golang/protobuf/proto"
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||||
|
// of the legacy proto package is being used.
|
||||||
|
const _ = proto.ProtoPackageIsVersion4
|
||||||
|
|
||||||
|
// 订单支付方式
|
||||||
|
type OrderMethod struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||||
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
|
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
|
||||||
|
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
|
||||||
|
Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"`
|
||||||
|
Secret string `protobuf:"bytes,6,opt,name=secret,proto3" json:"secret,omitempty"`
|
||||||
|
IsOn bool `protobuf:"varint,7,opt,name=isOn,proto3" json:"isOn,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) Reset() {
|
||||||
|
*x = OrderMethod{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_models_model_order_method_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*OrderMethod) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *OrderMethod) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_models_model_order_method_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use OrderMethod.ProtoReflect.Descriptor instead.
|
||||||
|
func (*OrderMethod) Descriptor() ([]byte, []int) {
|
||||||
|
return file_models_model_order_method_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Id
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetName() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Name
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetCode() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Code
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetDescription() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Description
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetUrl() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Url
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetSecret() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Secret
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *OrderMethod) GetIsOn() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.IsOn
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_models_model_order_method_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_models_model_order_method_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6f,
|
||||||
|
0x72, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||||
|
0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0xa5, 0x01, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d,
|
||||||
|
0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||||
|
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
|
||||||
|
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a,
|
||||||
|
0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
|
||||||
|
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
||||||
|
0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,
|
||||||
|
0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f,
|
||||||
|
0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x42, 0x06, 0x5a,
|
||||||
|
0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_models_model_order_method_proto_rawDescOnce sync.Once
|
||||||
|
file_models_model_order_method_proto_rawDescData = file_models_model_order_method_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_models_model_order_method_proto_rawDescGZIP() []byte {
|
||||||
|
file_models_model_order_method_proto_rawDescOnce.Do(func() {
|
||||||
|
file_models_model_order_method_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_order_method_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_models_model_order_method_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_models_model_order_method_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||||
|
var file_models_model_order_method_proto_goTypes = []interface{}{
|
||||||
|
(*OrderMethod)(nil), // 0: pb.OrderMethod
|
||||||
|
}
|
||||||
|
var file_models_model_order_method_proto_depIdxs = []int32{
|
||||||
|
0, // [0:0] is the sub-list for method output_type
|
||||||
|
0, // [0:0] is the sub-list for method input_type
|
||||||
|
0, // [0:0] is the sub-list for extension type_name
|
||||||
|
0, // [0:0] is the sub-list for extension extendee
|
||||||
|
0, // [0:0] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_models_model_order_method_proto_init() }
|
||||||
|
func file_models_model_order_method_proto_init() {
|
||||||
|
if File_models_model_order_method_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_models_model_order_method_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*OrderMethod); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_models_model_order_method_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 1,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_models_model_order_method_proto_goTypes,
|
||||||
|
DependencyIndexes: file_models_model_order_method_proto_depIdxs,
|
||||||
|
MessageInfos: file_models_model_order_method_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_models_model_order_method_proto = out.File
|
||||||
|
file_models_model_order_method_proto_rawDesc = nil
|
||||||
|
file_models_model_order_method_proto_goTypes = nil
|
||||||
|
file_models_model_order_method_proto_depIdxs = nil
|
||||||
|
}
|
||||||
295
pkg/rpc/pb/model_user_order.pb.go
Normal file
295
pkg/rpc/pb/model_user_order.pb.go
Normal file
@@ -0,0 +1,295 @@
|
|||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.25.0
|
||||||
|
// protoc v3.19.4
|
||||||
|
// source: models/model_user_order.proto
|
||||||
|
|
||||||
|
package pb
|
||||||
|
|
||||||
|
import (
|
||||||
|
proto "github.com/golang/protobuf/proto"
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
// This is a compile-time assertion that a sufficiently up-to-date version
|
||||||
|
// of the legacy proto package is being used.
|
||||||
|
const _ = proto.ProtoPackageIsVersion4
|
||||||
|
|
||||||
|
// 用户订单
|
||||||
|
type UserOrder struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"`
|
||||||
|
Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
|
||||||
|
Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
|
||||||
|
OrderMethodId int64 `protobuf:"varint,5,opt,name=orderMethodId,proto3" json:"orderMethodId,omitempty"`
|
||||||
|
Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
|
||||||
|
Amount float32 `protobuf:"fixed32,7,opt,name=amount,proto3" json:"amount,omitempty"`
|
||||||
|
ParamsJSON []byte `protobuf:"bytes,8,opt,name=paramsJSON,proto3" json:"paramsJSON,omitempty"`
|
||||||
|
CreatedAt int64 `protobuf:"varint,9,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
|
||||||
|
CancelledAt int64 `protobuf:"varint,10,opt,name=cancelledAt,proto3" json:"cancelledAt,omitempty"`
|
||||||
|
FinishedAt int64 `protobuf:"varint,11,opt,name=finishedAt,proto3" json:"finishedAt,omitempty"`
|
||||||
|
IsExpired bool `protobuf:"varint,12,opt,name=isExpired,proto3" json:"isExpired,omitempty"`
|
||||||
|
User *User `protobuf:"bytes,30,opt,name=user,proto3" json:"user,omitempty"`
|
||||||
|
OrderMethod *OrderMethod `protobuf:"bytes,31,opt,name=orderMethod,proto3" json:"orderMethod,omitempty"`
|
||||||
|
CanPay bool `protobuf:"varint,32,opt,name=canPay,proto3" json:"canPay,omitempty"` // 是否可以支付
|
||||||
|
PayURL string `protobuf:"bytes,33,opt,name=payURL,proto3" json:"payURL,omitempty"` // 构造后的支付URL
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) Reset() {
|
||||||
|
*x = UserOrder{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_models_model_user_order_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*UserOrder) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *UserOrder) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_models_model_user_order_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use UserOrder.ProtoReflect.Descriptor instead.
|
||||||
|
func (*UserOrder) Descriptor() ([]byte, []int) {
|
||||||
|
return file_models_model_user_order_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetUserId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.UserId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetCode() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Code
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetType() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Type
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetOrderMethodId() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.OrderMethodId
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetStatus() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.Status
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetAmount() float32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Amount
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetParamsJSON() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.ParamsJSON
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetCreatedAt() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CreatedAt
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetCancelledAt() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.CancelledAt
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetFinishedAt() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.FinishedAt
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetIsExpired() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.IsExpired
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetUser() *User {
|
||||||
|
if x != nil {
|
||||||
|
return x.User
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetOrderMethod() *OrderMethod {
|
||||||
|
if x != nil {
|
||||||
|
return x.OrderMethod
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetCanPay() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.CanPay
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *UserOrder) GetPayURL() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.PayURL
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_models_model_user_order_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_models_model_user_order_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75,
|
||||||
|
0x73, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
|
||||||
|
0x02, 0x70, 0x62, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65,
|
||||||
|
0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x6d, 0x6f,
|
||||||
|
0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72,
|
||||||
|
0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x03,
|
||||||
|
0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75,
|
||||||
|
0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65,
|
||||||
|
0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
|
||||||
|
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6f,
|
||||||
|
0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01,
|
||||||
|
0x28, 0x03, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x49,
|
||||||
|
0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f,
|
||||||
|
0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
|
||||||
|
0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18,
|
||||||
|
0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x53, 0x4f,
|
||||||
|
0x4e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x09,
|
||||||
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
|
||||||
|
0x20, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0a,
|
||||||
|
0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x41,
|
||||||
|
0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74, 0x18,
|
||||||
|
0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41,
|
||||||
|
0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x0c,
|
||||||
|
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12,
|
||||||
|
0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e,
|
||||||
|
0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x31, 0x0a,
|
||||||
|
0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x1f, 0x20, 0x01,
|
||||||
|
0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x62, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74,
|
||||||
|
0x68, 0x6f, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
|
||||||
|
0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x08,
|
||||||
|
0x52, 0x06, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x55,
|
||||||
|
0x52, 0x4c, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x55, 0x52, 0x4c,
|
||||||
|
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_models_model_user_order_proto_rawDescOnce sync.Once
|
||||||
|
file_models_model_user_order_proto_rawDescData = file_models_model_user_order_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_models_model_user_order_proto_rawDescGZIP() []byte {
|
||||||
|
file_models_model_user_order_proto_rawDescOnce.Do(func() {
|
||||||
|
file_models_model_user_order_proto_rawDescData = protoimpl.X.CompressGZIP(file_models_model_user_order_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_models_model_user_order_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_models_model_user_order_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||||
|
var file_models_model_user_order_proto_goTypes = []interface{}{
|
||||||
|
(*UserOrder)(nil), // 0: pb.UserOrder
|
||||||
|
(*User)(nil), // 1: pb.User
|
||||||
|
(*OrderMethod)(nil), // 2: pb.OrderMethod
|
||||||
|
}
|
||||||
|
var file_models_model_user_order_proto_depIdxs = []int32{
|
||||||
|
1, // 0: pb.UserOrder.user:type_name -> pb.User
|
||||||
|
2, // 1: pb.UserOrder.orderMethod:type_name -> pb.OrderMethod
|
||||||
|
2, // [2:2] is the sub-list for method output_type
|
||||||
|
2, // [2:2] is the sub-list for method input_type
|
||||||
|
2, // [2:2] is the sub-list for extension type_name
|
||||||
|
2, // [2:2] is the sub-list for extension extendee
|
||||||
|
0, // [0:2] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_models_model_user_order_proto_init() }
|
||||||
|
func file_models_model_user_order_proto_init() {
|
||||||
|
if File_models_model_user_order_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
file_models_model_user_proto_init()
|
||||||
|
file_models_model_order_method_proto_init()
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_models_model_user_order_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*UserOrder); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_models_model_user_order_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 1,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_models_model_user_order_proto_goTypes,
|
||||||
|
DependencyIndexes: file_models_model_user_order_proto_depIdxs,
|
||||||
|
MessageInfos: file_models_model_user_order_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_models_model_user_order_proto = out.File
|
||||||
|
file_models_model_user_order_proto_rawDesc = nil
|
||||||
|
file_models_model_user_order_proto_goTypes = nil
|
||||||
|
file_models_model_user_order_proto_depIdxs = nil
|
||||||
|
}
|
||||||
1303
pkg/rpc/pb/service_order_method.pb.go
Normal file
1303
pkg/rpc/pb/service_order_method.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
1078
pkg/rpc/pb/service_user_order.pb.go
Normal file
1078
pkg/rpc/pb/service_user_order.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
15
pkg/rpc/protos/models/model_order_method.proto
Normal file
15
pkg/rpc/protos/models/model_order_method.proto
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
option go_package = "./pb";
|
||||||
|
|
||||||
|
package pb;
|
||||||
|
|
||||||
|
// 订单支付方式
|
||||||
|
message OrderMethod {
|
||||||
|
int64 id = 1;
|
||||||
|
string name = 2;
|
||||||
|
string code = 3;
|
||||||
|
string description = 4;
|
||||||
|
string url = 5;
|
||||||
|
string secret = 6;
|
||||||
|
bool isOn = 7;
|
||||||
|
}
|
||||||
28
pkg/rpc/protos/models/model_user_order.proto
Normal file
28
pkg/rpc/protos/models/model_user_order.proto
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
option go_package = "./pb";
|
||||||
|
|
||||||
|
package pb;
|
||||||
|
|
||||||
|
import "models/model_user.proto";
|
||||||
|
import "models/model_order_method.proto";
|
||||||
|
|
||||||
|
// 用户订单
|
||||||
|
message UserOrder {
|
||||||
|
int64 userId = 2;
|
||||||
|
string code = 3;
|
||||||
|
string type = 4;
|
||||||
|
int64 orderMethodId = 5;
|
||||||
|
string status = 6;
|
||||||
|
float amount = 7;
|
||||||
|
bytes paramsJSON = 8;
|
||||||
|
int64 createdAt = 9;
|
||||||
|
int64 cancelledAt = 10;
|
||||||
|
int64 finishedAt = 11;
|
||||||
|
bool isExpired = 12;
|
||||||
|
|
||||||
|
User user = 30;
|
||||||
|
OrderMethod orderMethod = 31;
|
||||||
|
|
||||||
|
bool canPay = 32; // 是否可以支付
|
||||||
|
string payURL = 33; // 构造后的支付URL
|
||||||
|
}
|
||||||
94
pkg/rpc/protos/service_order_method.proto
Normal file
94
pkg/rpc/protos/service_order_method.proto
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
option go_package = "./pb";
|
||||||
|
|
||||||
|
package pb;
|
||||||
|
|
||||||
|
import "models/model_order_method.proto";
|
||||||
|
import "models/rpc_messages.proto";
|
||||||
|
|
||||||
|
// 订单支付方式相关服务
|
||||||
|
service OrderMethodService {
|
||||||
|
// 创建支付方式
|
||||||
|
rpc createOrderMethod(CreateOrderMethodRequest) returns (CreateOrderMethodResponse);
|
||||||
|
|
||||||
|
// 修改支付方式
|
||||||
|
rpc updateOrderMethod(UpdateOrderMethodRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
|
// 删除支付方式
|
||||||
|
rpc deleteOrderMethod(DeleteOrderMethodRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
|
// 查找单个支付方式
|
||||||
|
rpc findEnabledOrderMethod(FindEnabledOrderMethodRequest) returns (FindEnabledOrderMethodResponse);
|
||||||
|
|
||||||
|
// 根据代号查找支付方式
|
||||||
|
rpc findEnabledOrderMethodWithCode(FindEnabledOrderMethodWithCodeRequest) returns (FindEnabledOrderMethodWithCodeResponse);
|
||||||
|
|
||||||
|
// 查找所有支付方式
|
||||||
|
rpc findAllEnabledOrderMethods(FindAllEnabledOrderMethodsRequest) returns (FindAllEnabledOrderMethodsResponse);
|
||||||
|
|
||||||
|
// 查找所有已启用的支付方式
|
||||||
|
rpc findAllEnabledAndOnOrderMethods(FindAllEnabledAndOnOrderMethodsRequest) returns (FindAllEnabledAndOnOrderMethodsResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建支付方式
|
||||||
|
message CreateOrderMethodRequest {
|
||||||
|
string name = 1;
|
||||||
|
string code = 2;
|
||||||
|
string description = 3;
|
||||||
|
string url = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateOrderMethodResponse {
|
||||||
|
int64 orderMethodId = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改支付方式
|
||||||
|
message UpdateOrderMethodRequest {
|
||||||
|
int64 orderMethodId = 1;
|
||||||
|
string name = 2;
|
||||||
|
string code = 3;
|
||||||
|
string description = 4;
|
||||||
|
string url = 5;
|
||||||
|
bool isOn = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除支付方式
|
||||||
|
message DeleteOrderMethodRequest {
|
||||||
|
int64 orderMethodId = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找单个支付方式
|
||||||
|
message FindEnabledOrderMethodRequest {
|
||||||
|
int64 orderMethodId = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FindEnabledOrderMethodResponse {
|
||||||
|
OrderMethod orderMethod = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据代号查找支付方式
|
||||||
|
message FindEnabledOrderMethodWithCodeRequest {
|
||||||
|
string code = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FindEnabledOrderMethodWithCodeResponse {
|
||||||
|
OrderMethod orderMethod = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找所有支付方式
|
||||||
|
message FindAllEnabledOrderMethodsRequest {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
message FindAllEnabledOrderMethodsResponse {
|
||||||
|
repeated OrderMethod orderMethods = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找所有已启用的支付方式
|
||||||
|
message FindAllEnabledAndOnOrderMethodsRequest {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
message FindAllEnabledAndOnOrderMethodsResponse {
|
||||||
|
repeated OrderMethod orderMethods = 1;
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ syntax = "proto3";
|
|||||||
option go_package = "./pb";
|
option go_package = "./pb";
|
||||||
|
|
||||||
package pb;
|
package pb;
|
||||||
|
|
||||||
import "models/model_user_node.proto";
|
import "models/model_user_node.proto";
|
||||||
import "models/rpc_messages.proto";
|
import "models/rpc_messages.proto";
|
||||||
|
|
||||||
|
|||||||
79
pkg/rpc/protos/service_user_order.proto
Normal file
79
pkg/rpc/protos/service_user_order.proto
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
syntax = "proto3";
|
||||||
|
option go_package = "./pb";
|
||||||
|
|
||||||
|
package pb;
|
||||||
|
|
||||||
|
import "models/model_user_order.proto";
|
||||||
|
import "models/rpc_messages.proto";
|
||||||
|
|
||||||
|
// 用户订单相关服务
|
||||||
|
service UserOrderService {
|
||||||
|
// 创建订单
|
||||||
|
rpc createUserOrder(CreateUserOrderRequest) returns (CreateUserOrderResponse);
|
||||||
|
|
||||||
|
// 查看订单
|
||||||
|
rpc findEnabledUserOrder(FindEnabledUserOrderRequest) returns (FindEnabledUserOrderResponse);
|
||||||
|
|
||||||
|
// 取消订单
|
||||||
|
rpc cancelUserOrder(CancelUserOrderRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
|
// 完成订单
|
||||||
|
rpc finishUserOrder(FinishUserOrderRequest) returns (RPCSuccess);
|
||||||
|
|
||||||
|
// 计算订单数量
|
||||||
|
rpc countEnabledUserOrders(CountEnabledUserOrdersRequest) returns (RPCCountResponse);
|
||||||
|
|
||||||
|
// 列出单页订单
|
||||||
|
rpc listEnabledUserOrders(ListEnabledUserOrdersRequest) returns (ListEnabledUserOrdersResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建订单
|
||||||
|
message CreateUserOrderRequest {
|
||||||
|
string type = 1;
|
||||||
|
string orderMethodCode = 2;
|
||||||
|
float amount = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message CreateUserOrderResponse {
|
||||||
|
string code = 1;
|
||||||
|
string payURL = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查看订单
|
||||||
|
message FindEnabledUserOrderRequest {
|
||||||
|
string code = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message FindEnabledUserOrderResponse {
|
||||||
|
UserOrder userOrder = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 取消订单
|
||||||
|
message CancelUserOrderRequest {
|
||||||
|
string code = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 完成订单
|
||||||
|
message FinishUserOrderRequest {
|
||||||
|
string code = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算订单数量
|
||||||
|
message CountEnabledUserOrdersRequest {
|
||||||
|
int64 userId = 1;
|
||||||
|
string keyword = 2;
|
||||||
|
string status = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 列出单页订单
|
||||||
|
message ListEnabledUserOrdersRequest {
|
||||||
|
int64 userId = 1;
|
||||||
|
string keyword = 2;
|
||||||
|
string status = 3;
|
||||||
|
int64 offset = 4;
|
||||||
|
int64 size = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
message ListEnabledUserOrdersResponse {
|
||||||
|
repeated UserOrder userOrders = 1;
|
||||||
|
}
|
||||||
@@ -17,6 +17,7 @@ const (
|
|||||||
SettingCodeUserRegisterConfig SettingCode = "userRegisterConfig" // 用户注册配置
|
SettingCodeUserRegisterConfig SettingCode = "userRegisterConfig" // 用户注册配置
|
||||||
SettingCodeUserServerConfig SettingCode = "userServerConfig" // 用户服务设置
|
SettingCodeUserServerConfig SettingCode = "userServerConfig" // 用户服务设置
|
||||||
SettingCodeUserFinanceConfig SettingCode = "userFinanceConfig" // 用户财务设置
|
SettingCodeUserFinanceConfig SettingCode = "userFinanceConfig" // 用户财务设置
|
||||||
|
SettingCodeUserOrderConfig SettingCode = "userOrderConfig" // 用户订单设置
|
||||||
|
|
||||||
SettingCodeNSAccessLogSetting SettingCode = "nsAccessLogSetting" // NS相关全局配置
|
SettingCodeNSAccessLogSetting SettingCode = "nsAccessLogSetting" // NS相关全局配置
|
||||||
SettingCodeNSNodeMonitor SettingCode = "nsNodeMonitor" // 监控NS节点状态
|
SettingCodeNSNodeMonitor SettingCode = "nsNodeMonitor" // 监控NS节点状态
|
||||||
|
|||||||
60
pkg/userconfigs/order_constants.go
Normal file
60
pkg/userconfigs/order_constants.go
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package userconfigs
|
||||||
|
|
||||||
|
import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||||
|
|
||||||
|
type OrderType = string
|
||||||
|
|
||||||
|
const (
|
||||||
|
OrderTypeCharge OrderType = "charge"
|
||||||
|
)
|
||||||
|
|
||||||
|
func IsValidOrderType(s string) bool {
|
||||||
|
return s == OrderTypeCharge
|
||||||
|
}
|
||||||
|
|
||||||
|
func OrderTypeName(orderType OrderType) string {
|
||||||
|
switch orderType {
|
||||||
|
case OrderTypeCharge:
|
||||||
|
return "充值"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
type OrderStatus = string
|
||||||
|
|
||||||
|
const (
|
||||||
|
OrderStatusNone OrderStatus = "none"
|
||||||
|
OrderStatusCancelled OrderStatus = "cancelled"
|
||||||
|
OrderStatusFinished OrderStatus = "finished"
|
||||||
|
)
|
||||||
|
|
||||||
|
func OrderStatusName(orderStatus OrderStatus) string {
|
||||||
|
switch orderStatus {
|
||||||
|
case OrderStatusNone:
|
||||||
|
return "未支付"
|
||||||
|
case OrderStatusCancelled:
|
||||||
|
return "已取消"
|
||||||
|
case OrderStatusFinished:
|
||||||
|
return "已完成"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func FindAllOrderStatusList() []*shared.Definition {
|
||||||
|
return []*shared.Definition{
|
||||||
|
{
|
||||||
|
Name: "已完成",
|
||||||
|
Code: OrderStatusFinished,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "未支付",
|
||||||
|
Code: OrderStatusNone,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "已取消",
|
||||||
|
Code: OrderStatusCancelled,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
23
pkg/userconfigs/user_order_config.go
Normal file
23
pkg/userconfigs/user_order_config.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package userconfigs
|
||||||
|
|
||||||
|
import "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
|
||||||
|
|
||||||
|
// UserOrderConfig 用户订单配置
|
||||||
|
type UserOrderConfig struct {
|
||||||
|
EnablePay bool `json:"enablePay"` // 启用支付
|
||||||
|
DisablePageHTML string `json:"disablePageHTML"` // 禁用支付时的页面提示
|
||||||
|
OrderLife *shared.TimeDuration `json:"orderLife"` // 过期时间
|
||||||
|
}
|
||||||
|
|
||||||
|
func DefaultUserOrderConfig() *UserOrderConfig {
|
||||||
|
return &UserOrderConfig{
|
||||||
|
EnablePay: false,
|
||||||
|
DisablePageHTML: "暂不提供在线充值功能,请联系管理员充值。",
|
||||||
|
OrderLife: &shared.TimeDuration{
|
||||||
|
Count: 1,
|
||||||
|
Unit: shared.TimeDurationUnitHour,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user