|
|
from fastapi import Depends, APIRouter, status, Query, Path, HTTPException from internal.models import * from internal.database import fetch_one, fetch_all, execute_query, response_success, raise_if_exists, raise_if_not_found from dependencies import get_current_active_user
router = APIRouter( prefix="/disburses", tags=['支出管理'] ) # 获取列表
@router.get("/list/specificdate") async def disburse_list(days: int): select_query = """SELECT DATE(create_at) AS create_date, SUM(disburseprice) AS total_disburseprice
FROM disburses WHERE DATE(create_at) >= DATE_SUB(CURDATE(), INTERVAL %s DAY) -- 一周前的日期 GROUP BY DATE(create_at) ORDER BY create_date ASC;"""
disburse_list = fetch_all(select_query, (days-1,)) return response_success(disburse_list, "disburse get list success")
# 获取列表
@router.get("/list/classifieddata") async def classified_list(days: int): select_query = """SELECT SUM(d.disburseprice) AS value,t.typename AS name FROM disburses d
JOIN disbursetypes t ON d.typeid = t.id WHERE d.create_at >= DATE_SUB(CURDATE(), INTERVAL %s DAY) GROUP BY t.typename ;"""
classified_list = fetch_all(select_query, (days-1,)) return response_success(classified_list, "disburse get list success")
# 单条数据查询
@router.get("/list/search") async def disburse_search(header: str = Query(description="支出标题")): select_query = "SELECT id,header,text,descr FROM disburses WHERE 1=1 " params = [] if header: select_query += "AND header LIKE %s" params.append(f"%{header}%") disburse_query = fetch_all(select_query, params=params, fetchall=True) return response_success(data=disburse_query, message="disburse search success")
|