feat(crm): expose quote approver setting get/save APIs

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-08-01 13:04:07 +08:00
1 parent ffbb5e36b3
commit 8646f33587
1 file changed
+39 -1
+39 -1
View File
@@ -7,7 +7,7 @@ from fastapi import Depends
from sqlalchemy.orm import Session
from app.core.database import get_db
from app.core.menu_guard import require_admin_or_super_admin
from app.core.menu_guard import require_admin_or_super_admin, require_menu_code
from app.core.response import error_response, success_response
from app.core.tenant_context import get_tenant_no
from app.crud.crm.data_scope_helpers import crm_user_info
@@ -33,6 +33,7 @@ from app.crud.crm.quote import (
total_pages as quote_total_pages,
update_quote,
)
from app.crud.crm.quote_approver_setting import get_setting, save_setting
from app.crud.crm.quote_approval import (
approve_quote,
list_quote_approvals,
@@ -46,6 +47,7 @@ from app.crud.crm.quote_product import (
update_quote_product,
)
from app.crud.crm.quote_share_log import list_share_logs, share_log_statistics
from app.schemas.crm.quote_approver_setting import QuoteApproverSettingSaveBody
from app.schemas.crm.quote import (
QuoteAcceptBody,
QuoteApprovalApproveBody,
@@ -711,3 +713,39 @@ def register_quote_routes(router):
return error_response(400, str(e))
except Exception as e:
return error_response(500, str(e))
@router.post("/quote-approver-setting/get")
async def quote_approver_setting_get(
_user: dict = Depends(require_admin_or_super_admin),
db: Session = Depends(get_db),
):
try:
tenant_no = get_tenant_no(db, _user)
data = get_setting(db, tenant_no=tenant_no)
return success_response(data or {"approverIds": [], "status": "1"})
except Exception as e:
return error_response(500, str(e))
@router.post("/quote-approver-setting/save")
async def quote_approver_setting_save(
body: QuoteApproverSettingSaveBody,
_user: dict = Depends(require_menu_code("crm:quote:approverSetting")),
db: Session = Depends(get_db),
):
try:
tenant_no = get_tenant_no(db, _user)
user_id = _user.get("user_id", "") or _user.get("id", "")
dept_id = _user.get("dept_id", "") or _user.get("create_dept_id", "") or ""
data = save_setting(
db,
tenant_no=tenant_no,
approver_ids=body.approverIds or [],
status=body.status or "0",
user_id=user_id,
dept_id=dept_id,
)
return success_response(data, message="保存成功")
except ValueError as e:
return error_response(400, str(e))
except Exception as e:
return error_response(500, str(e))