增加订单汇总数据。
This commit is contained in:
parent
a37dbb1aab
commit
e4b53b6f04
@ -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)
|
||||
@ -434,4 +434,43 @@ async def get_order_qrcode(
|
||||
return success_response(data={"qrcode_url": process_url})
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
return error_response(code=500, message=f"生成二维码失败: {str(e)}")
|
||||
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
|
||||
})
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -1030,4 +1031,46 @@ async def get_admin_orders(
|
||||
|
||||
except Exception as e:
|
||||
logging.exception(f"获取订单列表失败: {str(e)}")
|
||||
return error_response(code=500, message=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
|
||||
})
|
||||
Loading…
Reference in New Issue
Block a user