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";
|
||||
|
||||
package pb;
|
||||
|
||||
import "models/model_user_node.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" // 用户注册配置
|
||||
SettingCodeUserServerConfig SettingCode = "userServerConfig" // 用户服务设置
|
||||
SettingCodeUserFinanceConfig SettingCode = "userFinanceConfig" // 用户财务设置
|
||||
SettingCodeUserOrderConfig SettingCode = "userOrderConfig" // 用户订单设置
|
||||
|
||||
SettingCodeNSAccessLogSetting SettingCode = "nsAccessLogSetting" // 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