核销订单修改。
This commit is contained in:
parent
16e398c744
commit
2c6b54ab65
@ -43,3 +43,11 @@ async def get_deliveryman_user(
|
|||||||
if UserRole.DELIVERYMAN not in current_user.roles:
|
if UserRole.DELIVERYMAN not in current_user.roles:
|
||||||
raise HTTPException(status_code=403, detail="需要配送员权限")
|
raise HTTPException(status_code=403, detail="需要配送员权限")
|
||||||
return current_user
|
return current_user
|
||||||
|
|
||||||
|
async def get_merchant_user(
|
||||||
|
current_user: UserDB = Depends(get_current_user)
|
||||||
|
) -> UserDB:
|
||||||
|
"""验证商家权限"""
|
||||||
|
if UserRole.MERCHANT not in current_user.roles:
|
||||||
|
raise HTTPException(status_code=403, detail="需要商家权限")
|
||||||
|
return current_user
|
||||||
@ -10,7 +10,7 @@ from app.models.merchant_order import (
|
|||||||
)
|
)
|
||||||
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
|
||||||
from app.api.deps import get_current_user, get_admin_user
|
from app.api.deps import get_current_user, get_admin_user, get_merchant_user
|
||||||
from app.models.user import UserDB
|
from app.models.user import UserDB
|
||||||
from app.core.response import success_response, error_response, ResponseModel
|
from app.core.response import success_response, error_response, ResponseModel
|
||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
@ -28,6 +28,7 @@ from fastapi import UploadFile
|
|||||||
from app.core.qcloud import qcloud_manager
|
from app.core.qcloud import qcloud_manager
|
||||||
from app.core.imageprocessor import process_image, ImageFormat
|
from app.core.imageprocessor import process_image, ImageFormat
|
||||||
from starlette.datastructures import Headers
|
from starlette.datastructures import Headers
|
||||||
|
from app.models.merchant_order import MerchantOrderVerify
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -144,12 +145,36 @@ async def get_user_orders(
|
|||||||
|
|
||||||
return success_response(data=order_list)
|
return success_response(data=order_list)
|
||||||
|
|
||||||
@router.post("/{order_id}/verify", response_model=ResponseModel)
|
@router.get("/merchant/query_verify", response_model=ResponseModel)
|
||||||
async def verify_order(
|
async def query_verify(
|
||||||
order_id: str,
|
request: MerchantOrderVerify,
|
||||||
verify_code: str,
|
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
current_user: UserDB = Depends(get_current_user)
|
merchant_user: UserDB = Depends(get_merchant_user)
|
||||||
|
):
|
||||||
|
"""查询待核销订单"""
|
||||||
|
order = db.query(
|
||||||
|
MerchantOrderDB,
|
||||||
|
MerchantProductDB,
|
||||||
|
MerchantDB
|
||||||
|
).join(
|
||||||
|
MerchantProductDB,
|
||||||
|
MerchantOrderDB.merchant_product_id == MerchantProductDB.id
|
||||||
|
).join(
|
||||||
|
MerchantDB,
|
||||||
|
MerchantProductDB.merchant_id == MerchantDB.id
|
||||||
|
).filter(
|
||||||
|
MerchantOrderDB.order_verify_code == request.verify_code,
|
||||||
|
MerchantOrderDB.status == MerchantOrderStatus.UNVERIFIED,
|
||||||
|
MerchantDB.user_id == merchant_user.userid
|
||||||
|
).first()
|
||||||
|
|
||||||
|
return success_response(data=MerchantOrderInfo.model_validate(order))
|
||||||
|
|
||||||
|
@router.post("/merchant/verify", response_model=ResponseModel)
|
||||||
|
async def verify_order(
|
||||||
|
request: MerchantOrderVerify,
|
||||||
|
db: Session = Depends(get_db),
|
||||||
|
merchant_user: UserDB = Depends(get_merchant_user)
|
||||||
):
|
):
|
||||||
"""核销订单"""
|
"""核销订单"""
|
||||||
# 查询订单及相关信息
|
# 查询订单及相关信息
|
||||||
@ -164,9 +189,9 @@ async def verify_order(
|
|||||||
MerchantDB,
|
MerchantDB,
|
||||||
MerchantProductDB.merchant_id == MerchantDB.id
|
MerchantProductDB.merchant_id == MerchantDB.id
|
||||||
).filter(
|
).filter(
|
||||||
MerchantOrderDB.order_id == order_id,
|
MerchantOrderDB.order_verify_code == request.verify_code,
|
||||||
MerchantOrderDB.order_verify_code == verify_code,
|
MerchantOrderDB.status == MerchantOrderStatus.UNVERIFIED,
|
||||||
MerchantOrderDB.verify_time.is_(None) # 未核销
|
MerchantDB.user_id == merchant_user.userid
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
if not order:
|
if not order:
|
||||||
@ -175,7 +200,7 @@ async def verify_order(
|
|||||||
try:
|
try:
|
||||||
# 更新核销时间和核销用户
|
# 更新核销时间和核销用户
|
||||||
order.MerchantOrderDB.verify_time = datetime.now(timezone.utc)
|
order.MerchantOrderDB.verify_time = datetime.now(timezone.utc)
|
||||||
order.MerchantOrderDB.verify_user_id = current_user.userid
|
order.MerchantOrderDB.verify_user_id = merchant_user.userid
|
||||||
order.MerchantOrderDB.status = MerchantOrderStatus.VERIFIED
|
order.MerchantOrderDB.status = MerchantOrderStatus.VERIFIED
|
||||||
|
|
||||||
# 对商家进行结算
|
# 对商家进行结算
|
||||||
|
|||||||
@ -40,6 +40,9 @@ class MerchantOrderDB(Base):
|
|||||||
class MerchantOrderCreate(BaseModel):
|
class MerchantOrderCreate(BaseModel):
|
||||||
merchant_product_id: int
|
merchant_product_id: int
|
||||||
|
|
||||||
|
class MerchantOrderVerify(BaseModel):
|
||||||
|
verify_code: str
|
||||||
|
|
||||||
class MerchantOrderInfo(BaseModel):
|
class MerchantOrderInfo(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
order_id: str
|
order_id: str
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user