更新商家订单状态枚举
This commit is contained in:
parent
6b6354000f
commit
2223873a82
@ -7,7 +7,7 @@ from app.models.merchant_order import (
|
||||
MerchantOrderInfo,
|
||||
generate_order_id,
|
||||
generate_verify_code,
|
||||
OrderStatus
|
||||
MerchantOrderStatus
|
||||
)
|
||||
from app.models.merchant_product import MerchantProductDB
|
||||
from app.models.database import get_db
|
||||
@ -50,7 +50,7 @@ async def create_order(
|
||||
user_id=current_user.userid,
|
||||
merchant_product_id=order.merchant_product_id,
|
||||
order_amount=order.order_amount,
|
||||
status=OrderStatus.CREATED, # 创建时状态为已下单
|
||||
status=MerchantOrderStatus.CREATED, # 创建时状态为已下单
|
||||
order_verify_code=verify_code
|
||||
)
|
||||
db.add(db_order)
|
||||
@ -101,7 +101,7 @@ async def verify_order(
|
||||
# 更新核销时间和核销用户
|
||||
order.verify_time = datetime.now(timezone.utc)
|
||||
order.verify_user_id = current_user.userid
|
||||
order.status = OrderStatus.VERIFIED # 更新为已核销状态
|
||||
order.status = MerchantOrderStatus.VERIFIED # 更新为已核销状态
|
||||
|
||||
try:
|
||||
db.commit()
|
||||
@ -122,14 +122,14 @@ async def set_order_unverified(
|
||||
"""设置订单为未核销状态"""
|
||||
order = db.query(MerchantOrderDB).filter(
|
||||
MerchantOrderDB.order_id == order_id,
|
||||
MerchantOrderDB.status == OrderStatus.CREATED # 只有已下单状态可以设为未核销
|
||||
MerchantOrderDB.status == MerchantOrderStatus.CREATED # 只有已下单状态可以设为未核销
|
||||
).first()
|
||||
|
||||
if not order:
|
||||
return error_response(code=404, message="订单不存在或状态不正确")
|
||||
|
||||
# 更新状态为未核销
|
||||
order.status = OrderStatus.UNVERIFIED
|
||||
order.status = MerchantOrderStatus.UNVERIFIED
|
||||
|
||||
try:
|
||||
db.commit()
|
||||
@ -151,14 +151,14 @@ async def apply_refund(
|
||||
order = db.query(MerchantOrderDB).filter(
|
||||
MerchantOrderDB.order_id == order_id,
|
||||
MerchantOrderDB.user_id == current_user.userid, # 只能申请自己的订单
|
||||
MerchantOrderDB.status.in_([OrderStatus.CREATED, OrderStatus.UNVERIFIED]) # 只有未核销的订单可以退款
|
||||
MerchantOrderDB.status.in_([MerchantOrderStatus.CREATED, MerchantOrderStatus.UNVERIFIED]) # 只有未核销的订单可以退款
|
||||
).first()
|
||||
|
||||
if not order:
|
||||
return error_response(code=404, message="订单不存在或状态不允许退款")
|
||||
|
||||
# 更新状态为退款中
|
||||
order.status = OrderStatus.REFUNDING
|
||||
order.status = MerchantOrderStatus.REFUNDING
|
||||
|
||||
try:
|
||||
db.commit()
|
||||
@ -179,14 +179,14 @@ async def confirm_refund(
|
||||
"""确认退款(管理员)"""
|
||||
order = db.query(MerchantOrderDB).filter(
|
||||
MerchantOrderDB.order_id == order_id,
|
||||
MerchantOrderDB.status == OrderStatus.REFUNDING # 只能确认退款中的订单
|
||||
MerchantOrderDB.status == MerchantOrderStatus.REFUNDING # 只能确认退款中的订单
|
||||
).first()
|
||||
|
||||
if not order:
|
||||
return error_response(code=404, message="订单不存在或状态不正确")
|
||||
|
||||
# 更新状态为已退款
|
||||
order.status = OrderStatus.REFUNDED
|
||||
order.status = MerchantOrderStatus.REFUNDED
|
||||
|
||||
try:
|
||||
db.commit()
|
||||
|
||||
@ -9,12 +9,12 @@ import random
|
||||
import time
|
||||
import enum
|
||||
|
||||
class OrderStatus(str, enum.Enum):
|
||||
CREATED = "created" # 已下单
|
||||
UNVERIFIED = "unverified" # 未核销
|
||||
VERIFIED = "verified" # 已核销
|
||||
REFUNDING = "refunding" # 退款中
|
||||
REFUNDED = "refunded" # 已退款
|
||||
class MerchantOrderStatus(str, enum.Enum):
|
||||
CREATED = "CREATED" # 已下单
|
||||
UNVERIFIED = "UNVERIFIED" # 未核销
|
||||
VERIFIED = "VERIFIED" # 已核销
|
||||
REFUNDING = "REFUNDING" # 退款中
|
||||
REFUNDED = "REFUNDED" # 已退款
|
||||
|
||||
class MerchantOrderDB(Base):
|
||||
__tablename__ = "merchant_orders"
|
||||
@ -24,7 +24,7 @@ class MerchantOrderDB(Base):
|
||||
user_id = Column(Integer, ForeignKey("users.userid"), nullable=False)
|
||||
merchant_product_id = Column(Integer, ForeignKey("merchant_products.id"), nullable=False)
|
||||
order_amount = Column(DECIMAL(10,2), nullable=False)
|
||||
status = Column(Enum(OrderStatus), nullable=False, default=OrderStatus.CREATED)
|
||||
status = Column(Enum(MerchantOrderStatus), nullable=False, default=MerchantOrderStatus.CREATED)
|
||||
order_verify_code = Column(String(21), unique=True, nullable=False)
|
||||
verify_time = Column(DateTime(timezone=True), nullable=True)
|
||||
verify_user_id = Column(Integer, ForeignKey("users.userid"), nullable=True)
|
||||
@ -41,7 +41,7 @@ class MerchantOrderInfo(BaseModel):
|
||||
user_id: int
|
||||
merchant_product_id: int
|
||||
order_amount: float
|
||||
status: OrderStatus
|
||||
status: MerchantOrderStatus
|
||||
order_verify_code: str
|
||||
verify_time: Optional[datetime]
|
||||
verify_user_id: Optional[int]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user