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