更新商家订单状态枚举

This commit is contained in:
aaron 2025-01-13 21:25:51 +08:00
parent 6b6354000f
commit 2223873a82
2 changed files with 17 additions and 17 deletions

View File

@ -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()

View File

@ -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]