fix: 充值投诉仅允许已支付流水(前后端硬拦)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -156,8 +156,16 @@ def validate_type_refs(leixing, order_id=None, chongzhi_id=None, fadan_id=None,
|
||||
if not chongzhi_id:
|
||||
raise GongdanError('充值投诉请填写充值记录ID', 'need_chongzhi_id')
|
||||
from products.models import Czjilu
|
||||
if not Czjilu.query.filter(dingdan_id=chongzhi_id).exists():
|
||||
from products.czjilu_types import CZJILU_PAID_STATUS
|
||||
cz = Czjilu.query.filter(dingdan_id=chongzhi_id).first()
|
||||
if not cz:
|
||||
raise GongdanError('充值记录不存在,请核对充值ID', 'chongzhi_not_found')
|
||||
try:
|
||||
z = int(cz.zhuangtai) if cz.zhuangtai is not None else None
|
||||
except (TypeError, ValueError):
|
||||
z = None
|
||||
if z != CZJILU_PAID_STATUS:
|
||||
raise GongdanError('仅已支付的充值单可投诉', 'chongzhi_not_paid')
|
||||
return None, chongzhi_id, None, None
|
||||
|
||||
if leixing == TYPE_PENALTY:
|
||||
|
||||
@@ -330,6 +330,15 @@ class ChongzhiRecordListView(APIView):
|
||||
leixing = request.data.get('leixing')
|
||||
if leixing not in (None, ''):
|
||||
qs = qs.filter(leixing=int(leixing))
|
||||
# 投诉选单:仅已支付;普通充值记录页不传此参数则展示全部状态
|
||||
only_paid = str(
|
||||
request.data.get('only_paid')
|
||||
or request.data.get('for_complaint')
|
||||
or ''
|
||||
).lower() in ('1', 'true', 'yes')
|
||||
if only_paid:
|
||||
from products.czjilu_types import CZJILU_PAID_STATUS
|
||||
qs = qs.filter(zhuangtai=CZJILU_PAID_STATUS)
|
||||
total = qs.count()
|
||||
start = max(page - 1, 0) * page_size
|
||||
type_map = {
|
||||
|
||||
Reference in New Issue
Block a user