|
@@ -49,11 +49,10 @@ AccountRouter = APIRouter(
|
|
|
response_model=ResponseSchema[Dict],
|
|
response_model=ResponseSchema[Dict],
|
|
|
)
|
|
)
|
|
|
async def stat_transfer_amount_controller(
|
|
async def stat_transfer_amount_controller(
|
|
|
- # start_date: Annotated[Optional[datetime], Query(description="统计开始日期")],
|
|
|
|
|
- # end_date: Annotated[Optional[datetime], Query(description="统计结束日期")],
|
|
|
|
|
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:account:transfer"]))],
|
|
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:account:transfer"]))],
|
|
|
tenant_id: Annotated[Optional[int], Query(description="租户ID")] = None,
|
|
tenant_id: Annotated[Optional[int], Query(description="租户ID")] = None,
|
|
|
enterprise_id: Annotated[Optional[str], Query(description="企业ID")] = None,
|
|
enterprise_id: Annotated[Optional[str], Query(description="企业ID")] = None,
|
|
|
|
|
+ payee_type: Annotated[Optional[str], Query(description="收款方类型: ALIPAY_ACCOUNT/BANK_CARD")] = None,
|
|
|
) -> JSONResponse:
|
|
) -> JSONResponse:
|
|
|
"""统计转账金额"""
|
|
"""统计转账金额"""
|
|
|
from datetime import datetime, timedelta, date
|
|
from datetime import datetime, timedelta, date
|
|
@@ -72,12 +71,10 @@ async def stat_transfer_amount_controller(
|
|
|
tenant_id=tenant_id,
|
|
tenant_id=tenant_id,
|
|
|
enterprise_id=enterprise_id,
|
|
enterprise_id=enterprise_id,
|
|
|
start_date=start_of_today,
|
|
start_date=start_of_today,
|
|
|
- end_date=end_of_today
|
|
|
|
|
|
|
+ end_date=end_of_today,
|
|
|
|
|
+ payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- # --- 2:统计近 7 天转账金额 ---
|
|
|
|
|
- # 目标:7天前的 00:00:00 到 今天 00:00:00 (或者到现在,看业务定义)
|
|
|
|
|
- # 如果业务定义“近7天”包含今天,且截止到当前时刻:
|
|
|
|
|
start_of_7days_ago = datetime.combine(today - timedelta(days=7), datetime.min.time())
|
|
start_of_7days_ago = datetime.combine(today - timedelta(days=7), datetime.min.time())
|
|
|
|
|
|
|
|
amount_of_7days = await AccountService.stat_transfer_amount_service(
|
|
amount_of_7days = await AccountService.stat_transfer_amount_service(
|
|
@@ -85,15 +82,16 @@ async def stat_transfer_amount_controller(
|
|
|
tenant_id=tenant_id,
|
|
tenant_id=tenant_id,
|
|
|
enterprise_id=enterprise_id,
|
|
enterprise_id=enterprise_id,
|
|
|
start_date=start_of_7days_ago,
|
|
start_date=start_of_7days_ago,
|
|
|
- end_date=now # 截止到当前精确时间
|
|
|
|
|
|
|
+ end_date=now,
|
|
|
|
|
+ payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
- # 统计全部转账金额
|
|
|
|
|
amount_of_all = await AccountService.stat_transfer_amount_service(
|
|
amount_of_all = await AccountService.stat_transfer_amount_service(
|
|
|
auth=auth,
|
|
auth=auth,
|
|
|
tenant_id=tenant_id,
|
|
tenant_id=tenant_id,
|
|
|
enterprise_id=enterprise_id,
|
|
enterprise_id=enterprise_id,
|
|
|
start_date=None,
|
|
start_date=None,
|
|
|
- end_date=None
|
|
|
|
|
|
|
+ end_date=None,
|
|
|
|
|
+ payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
return SuccessResponse(data={
|
|
return SuccessResponse(data={
|
|
@@ -158,32 +156,30 @@ async def stat_summary_amount_controller(
|
|
|
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:account:transfer"]))],
|
|
auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:account:transfer"]))],
|
|
|
tenant_id: Annotated[Optional[int], Query(description="租户ID")] = None,
|
|
tenant_id: Annotated[Optional[int], Query(description="租户ID")] = None,
|
|
|
enterprise_id: Annotated[Optional[str], Query(description="企业ID")] = None,
|
|
enterprise_id: Annotated[Optional[str], Query(description="企业ID")] = None,
|
|
|
|
|
+ payee_type: Annotated[Optional[str], Query(description="收款方类型: ALIPAY_ACCOUNT/BANK_CARD")] = None,
|
|
|
) -> JSONResponse:
|
|
) -> JSONResponse:
|
|
|
- """汇总统计金额(消费+转账)"""
|
|
|
|
|
|
|
+ """汇总统计金额(消费+转账),payee_type 仅过滤转账部分"""
|
|
|
from datetime import datetime, timedelta, date
|
|
from datetime import datetime, timedelta, date
|
|
|
|
|
|
|
|
now = datetime.now()
|
|
now = datetime.now()
|
|
|
today = date.today()
|
|
today = date.today()
|
|
|
|
|
|
|
|
- # 今天
|
|
|
|
|
start_of_today = datetime.combine(today, datetime.min.time())
|
|
start_of_today = datetime.combine(today, datetime.min.time())
|
|
|
end_of_today = start_of_today + timedelta(days=1)
|
|
end_of_today = start_of_today + timedelta(days=1)
|
|
|
amount_of_today = await AccountService.stat_summary_amount_service(
|
|
amount_of_today = await AccountService.stat_summary_amount_service(
|
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
|
- start_date=start_of_today, end_date=end_of_today,
|
|
|
|
|
|
|
+ start_date=start_of_today, end_date=end_of_today, payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- # 近7天
|
|
|
|
|
start_of_7days_ago = datetime.combine(today - timedelta(days=7), datetime.min.time())
|
|
start_of_7days_ago = datetime.combine(today - timedelta(days=7), datetime.min.time())
|
|
|
amount_of_7days = await AccountService.stat_summary_amount_service(
|
|
amount_of_7days = await AccountService.stat_summary_amount_service(
|
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
|
- start_date=start_of_7days_ago, end_date=now,
|
|
|
|
|
|
|
+ start_date=start_of_7days_ago, end_date=now, payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
- # 全部
|
|
|
|
|
amount_of_all = await AccountService.stat_summary_amount_service(
|
|
amount_of_all = await AccountService.stat_summary_amount_service(
|
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
auth=auth, tenant_id=tenant_id, enterprise_id=enterprise_id,
|
|
|
- start_date=None, end_date=None,
|
|
|
|
|
|
|
+ start_date=None, end_date=None, payee_type=payee_type,
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
return SuccessResponse(data={
|
|
return SuccessResponse(data={
|