增加订单汇总数据。

This commit is contained in:
aaron 2025-02-19 12:17:28 +08:00
parent a37dbb1aab
commit e4b53b6f04
2 changed files with 85 additions and 3 deletions

View File

@ -30,7 +30,7 @@ from app.core.imageprocessor import process_image, ImageFormat
from starlette.datastructures import Headers
from app.models.merchant_order import MerchantOrderVerify
from app.core.point_manager import PointManager, PointRecordType
from datetime import timedelta
router = APIRouter()
@router.post("", response_model=ResponseModel)
@ -435,3 +435,42 @@ async def get_order_qrcode(
except Exception as e:
db.rollback()
return error_response(code=500, message=f"生成二维码失败: {str(e)}")
# 获取商家订单数据汇总
@router.get("/merchant/summary", response_model=ResponseModel)
async def get_merchant_order_summary(
db: Session = Depends(get_db),
merchant_user: UserDB = Depends(get_merchant_user)
):
"""获取商家订单数据汇总"""
# 查询商家订单数量
total = db.query(MerchantOrderDB).filter(
MerchantOrderDB.user_id == merchant_user.userid
).count()
today = datetime.now().date()
yesterday = today - timedelta(days=1)
today_start = datetime.combine(today, datetime.min.time())
today_end = datetime.combine(today, datetime.max.time())
yesterday_start = datetime.combine(yesterday, datetime.min.time())
yesterday_end = datetime.combine(yesterday, datetime.max.time())
# 查询商家昨日、今日订单数量
yesterday_total = db.query(MerchantOrderDB).filter(
MerchantOrderDB.user_id == merchant_user.userid,
MerchantOrderDB.status == MerchantOrderStatus.VERIFIED,
MerchantOrderDB.create_time.between(yesterday_start, yesterday_end)
).count()
today_total = db.query(MerchantOrderDB).filter(
MerchantOrderDB.user_id == merchant_user.userid,
MerchantOrderDB.status == MerchantOrderStatus.VERIFIED,
MerchantOrderDB.create_time.between(today_start, today_end)
).count()
return success_response(data={
"total": total,
"yesterday_total": yesterday_total,
"today_total": today_total
})

View File

@ -32,6 +32,7 @@ from app.core.utils import CommonUtils
import logging
from sqlalchemy import func
from app.core.mpclient import mp_client
from datetime import timedelta
router = APIRouter()
@ -1031,3 +1032,45 @@ async def get_admin_orders(
except Exception as e:
logging.exception(f"获取订单列表失败: {str(e)}")
return error_response(code=500, message=f"获取订单列表失败: {str(e)}")
# 获取配送员订单数量汇总
@router.get("/deliveryman/summary", response_model=ResponseModel)
async def get_deliveryman_order_summary(
db: Session = Depends(get_db),
deliveryman: UserDB = Depends(get_deliveryman_user)
):
"""获取配送员订单数量汇总"""
# 查询配送员总订单数量
total = db.query(ShippingOrderDB).filter(
ShippingOrderDB.deliveryman_user_id == deliveryman.userid,
ShippingOrderDB.status == OrderStatus.COMPLETED
).count()
today = datetime.now().date()
yesterday = today - timedelta(days=1)
today_start = datetime.combine(today, datetime.min.time())
today_end = datetime.combine(today, datetime.max.time())
yesterday_start = datetime.combine(yesterday, datetime.min.time())
yesterday_end = datetime.combine(yesterday, datetime.max.time())
# 查询配送员昨日、今日订单数量
yesterday_total = db.query(ShippingOrderDB).filter(
ShippingOrderDB.deliveryman_user_id == deliveryman.userid,
ShippingOrderDB.status == OrderStatus.COMPLETED,
ShippingOrderDB.create_time.between(yesterday_start, yesterday_end)
).count()
today_total = db.query(ShippingOrderDB).filter(
ShippingOrderDB.deliveryman_user_id == deliveryman.userid,
ShippingOrderDB.status == OrderStatus.COMPLETED,
ShippingOrderDB.create_time.between(today_start, today_end)
).count()
return success_response(data={
"total_count": total,
"yesterday_count": yesterday_total,
"today_count": today_total
})