diff --git a/app/api/endpoints/merchant_order.py b/app/api/endpoints/merchant_order.py index f6ad205..70343a4 100644 --- a/app/api/endpoints/merchant_order.py +++ b/app/api/endpoints/merchant_order.py @@ -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() diff --git a/app/models/merchant_order.py b/app/models/merchant_order.py index 702c91b..0c13354 100644 --- a/app/models/merchant_order.py +++ b/app/models/merchant_order.py @@ -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]