重构虎牙精英宝典协议与支付状态链路
This commit is contained in:
@@ -639,6 +639,130 @@ class QueryUserOrderListRsp(TafStruct):
|
||||
}
|
||||
|
||||
|
||||
class OrderDetailOrder(TafStruct):
|
||||
"""orderDetailV5 中的订单摘要;保留支付轮询所需字段。"""
|
||||
|
||||
def __init__(self):
|
||||
self.orderId: int = 0
|
||||
self.orderStatus: int = 0
|
||||
self.createTime: int = 0
|
||||
self.payTime: int = 0
|
||||
self.totalPrice: int = 0
|
||||
|
||||
def read_from(self, ins: TafInputStream):
|
||||
while True:
|
||||
pos = ins.buf.tell()
|
||||
tag, dtype = ins.read_head()
|
||||
if dtype == TafType.STRUCT_END:
|
||||
ins.buf.seek(pos)
|
||||
return
|
||||
if tag == 0:
|
||||
ins.buf.seek(pos)
|
||||
self.orderId = ins.read_int64(tag, default=self.orderId)
|
||||
elif tag == 3:
|
||||
ins.buf.seek(pos)
|
||||
self.orderStatus = ins.read_int32(tag, default=self.orderStatus)
|
||||
elif tag == 7:
|
||||
ins.buf.seek(pos)
|
||||
self.totalPrice = ins.read_int64(tag, default=self.totalPrice)
|
||||
elif tag == 13:
|
||||
ins.buf.seek(pos)
|
||||
self.createTime = ins.read_int64(tag, default=self.createTime)
|
||||
elif tag == 14:
|
||||
ins.buf.seek(pos)
|
||||
self.payTime = ins.read_int64(tag, default=self.payTime)
|
||||
else:
|
||||
ins.skip_field(dtype)
|
||||
|
||||
def write_to(self, os: TafOutputStream):
|
||||
os.write_int64(0, self.orderId)
|
||||
os.write_int32(3, self.orderStatus)
|
||||
os.write_int64(7, self.totalPrice)
|
||||
os.write_int64(13, self.createTime)
|
||||
os.write_int64(14, self.payTime)
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
return {
|
||||
"order_id": self.orderId,
|
||||
"order_status": self.orderStatus,
|
||||
"create_time": self.createTime,
|
||||
"pay_time": self.payTime,
|
||||
"total_price": self.totalPrice,
|
||||
}
|
||||
|
||||
|
||||
class OrderDetailReq(TafStruct):
|
||||
"""shopMiddleUI.orderDetailV5 请求。"""
|
||||
|
||||
def __init__(self):
|
||||
self.userId = UserId()
|
||||
self.shopAppInfo = ShopAppInfo()
|
||||
self.orderId: int = 0
|
||||
|
||||
def write_to(self, os: TafOutputStream):
|
||||
os.write_struct(0, self.userId)
|
||||
os.write_struct(1, self.shopAppInfo)
|
||||
os.write_int64(2, self.orderId)
|
||||
|
||||
def read_from(self, ins: TafInputStream):
|
||||
self.userId = ins.read_struct(0, UserId) or self.userId
|
||||
self.shopAppInfo = ins.read_struct(1, ShopAppInfo) or self.shopAppInfo
|
||||
self.orderId = ins.read_int64(2, default=self.orderId)
|
||||
|
||||
|
||||
class OrderDetailData(TafStruct):
|
||||
def __init__(self):
|
||||
self.order: OrderDetailOrder | None = None
|
||||
|
||||
def read_from(self, ins: TafInputStream):
|
||||
while True:
|
||||
pos = ins.buf.tell()
|
||||
tag, dtype = ins.read_head()
|
||||
if dtype == TafType.STRUCT_END:
|
||||
ins.buf.seek(pos)
|
||||
return
|
||||
if tag == 1:
|
||||
ins.buf.seek(pos)
|
||||
self.order = ins.read_struct(1, OrderDetailOrder)
|
||||
else:
|
||||
ins.skip_field(dtype)
|
||||
|
||||
def write_to(self, os: TafOutputStream):
|
||||
if self.order:
|
||||
os.write_struct(1, self.order)
|
||||
|
||||
|
||||
class OrderDetailRsp(TafStruct):
|
||||
"""shopMiddleUI.orderDetailV5 响应。"""
|
||||
|
||||
def __init__(self):
|
||||
self.code = 0
|
||||
self.message = ""
|
||||
self.data: OrderDetailData | None = None
|
||||
|
||||
def read_from(self, ins: TafInputStream):
|
||||
self.code = ins.read_int32(0, default=self.code)
|
||||
self.message = ins.read_string(1, default=self.message)
|
||||
self.data = ins.read_struct(2, OrderDetailData)
|
||||
|
||||
@property
|
||||
def order(self) -> OrderDetailOrder | None:
|
||||
return self.data.order if self.data else None
|
||||
|
||||
def write_to(self, os: TafOutputStream):
|
||||
os.write_int32(0, self.code)
|
||||
os.write_string(1, self.message)
|
||||
if self.data:
|
||||
os.write_struct(2, self.data)
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
return {
|
||||
"code": self.code,
|
||||
"message": self.message,
|
||||
"order": self.order.to_dict() if self.order else None,
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 下单
|
||||
# ============================================================
|
||||
|
||||
Reference in New Issue
Block a user