voucher/wwwroot/api/v1/available.dspy
yumoqing 2b9942f356 feat: 新增客户自助查询 API (v1/available)
- wwwroot/api/v1/available.dspy: Bearer 认证,支持 product_type/product_name/request_amount 过滤
- init.py: get_available_vouchers_api 返回含 template_name 的完整数据
- README: 完善 API 文档,移除 dapi 依赖说明
- load_path.py: 注册 v1 端点权限
2026-05-29 00:51:27 +08:00

40 lines
1.2 KiB
Plaintext

import json
# 获取当前登录用户的组织ID作为客户ID
customer_id = await get_userorgid()
# 构建查询上下文(可选过滤条件)
context = {}
if params_kw.get('product_type'):
context['product_type'] = params_kw.get('product_type')
if params_kw.get('product_name'):
context['product_name'] = params_kw.get('product_name')
if params_kw.get('request_amount'):
try:
context['request_amount'] = float(params_kw.get('request_amount'))
except (ValueError, TypeError):
pass
# 查询可用代金券
result = await get_available_vouchers_api(customer_id, context if context else None)
# 格式化输出
if result.get('status') == 'success':
vouchers = []
for v in result.get('data', []):
vouchers.append({
'id': v.get('id'),
'code': v.get('code'),
'face_value': float(v.get('face_value', 0)),
'valid_from': str(v.get('valid_from', '')),
'valid_to': str(v.get('valid_to', '')),
'template_name': v.get('template_name', ''),
})
return json.dumps({
'status': 'success',
'data': vouchers,
'total': len(vouchers)
})
else:
return json.dumps(result)