From 5e4be15990d149c17e03c2bb7c7c47fd5019158e Mon Sep 17 00:00:00 2001 From: XingQue Date: Sat, 20 Jun 2026 21:36:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BE=E5=AE=BD=E5=95=86=E5=AE=B6=E6=8F=90?= =?UTF-8?q?=E7=8E=B0=E6=A0=A1=E9=AA=8C=EF=BC=9A=E4=BB=85=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=813/5=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E6=A0=A1=E9=AA=8C=E7=BD=9A=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- yonghu/tixian_shenhe_services.py | 26 +++++++--------------- yonghu/views.py | 37 +++++++++++--------------------- 2 files changed, 20 insertions(+), 43 deletions(-) diff --git a/yonghu/tixian_shenhe_services.py b/yonghu/tixian_shenhe_services.py index 799059a..e2bcbcd 100644 --- a/yonghu/tixian_shenhe_services.py +++ b/yonghu/tixian_shenhe_services.py @@ -214,9 +214,10 @@ def validate_withdraw_eligibility(user_main, leixing, jine): """ yonghuid = user_main.yonghuid - fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) - if not fadan_ok: - return False, fadan_msg, {} + if leixing != 6: + fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) + if not fadan_ok: + return False, fadan_msg, {} if leixing == 1: try: @@ -299,12 +300,6 @@ def validate_withdraw_eligibility(user_main, leixing, jine): ).exclude(dingdan__zhuangtai__in=[ORDER_STATUS_COMPLETED, ORDER_STATUS_REFUNDED]).exists() if unfinished_orders: return False, '您还有未完成或未退款的订单,请先处理完毕再提现余额', {} - self_fadan = Fadan.objects.filter(beichufa_id=yonghuid).exclude(zhuangtai__in=[2, 4]).exists() - if self_fadan: - return False, '您有未处理完毕的自身罚单(待缴纳/申诉中),请先处理', {} - applied_fadan = Fadan.objects.filter(shenqing_chufa=yonghuid).exclude(zhuangtai__in=[2, 4]).exists() - if applied_fadan: - return False, '您发起的对其他用户的处罚尚未处理完毕,请等待完结', {} return True, '', {'nicheng': shangjia.nicheng or ''} return False, '无效的提现类型', {} @@ -318,9 +313,10 @@ def validate_collect_eligibility(user_main, leixing): """ yonghuid = user_main.yonghuid - fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) - if not fadan_ok: - return False, fadan_msg + if leixing != 6: + fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) + if not fadan_ok: + return False, fadan_msg if leixing == 1: try: @@ -391,12 +387,6 @@ def validate_collect_eligibility(user_main, leixing): ).exclude(dingdan__zhuangtai__in=[ORDER_STATUS_COMPLETED, ORDER_STATUS_REFUNDED]).exists() if unfinished_orders: return False, '您还有未完成或未退款的订单,无法收款' - self_fadan = Fadan.objects.filter(beichufa_id=yonghuid).exclude(zhuangtai__in=[2, 4]).exists() - if self_fadan: - return False, '您有未处理完毕的自身罚单,无法收款' - applied_fadan = Fadan.objects.filter(shenqing_chufa=yonghuid).exclude(zhuangtai__in=[2, 4]).exists() - if applied_fadan: - return False, '您发起的处罚尚未处理完毕,无法收款' return True, '' return False, '无效的提现类型' diff --git a/yonghu/views.py b/yonghu/views.py index e7ac5b8..fbebc10 100644 --- a/yonghu/views.py +++ b/yonghu/views.py @@ -1906,10 +1906,17 @@ class TixianShenqingView(APIView): fangshi = request.data.get('fangshi') txskfs = request.data.get('txskfs', 0) - # 罚单检查(共用) - fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) - if not fadan_ok: - return Response({'code': 400, 'msg': fadan_msg}) + # 提前解析 leixing:商家提现(leixing=6)不校验罚单 + raw_leixing = request.data.get('leixing') + try: + leixing_preview = int(raw_leixing) if raw_leixing is not None else None + except (ValueError, TypeError): + leixing_preview = None + + if leixing_preview != 6: + fadan_ok, fadan_msg = check_fadan_qiangdan_eligible(yonghuid, 2) + if not fadan_ok: + return Response({'code': 400, 'msg': fadan_msg}) # 参数完整性 missing = [] @@ -2147,8 +2154,7 @@ class TixianShenqingView(APIView): def _check_shangjia_withdraw(self, user_main, jine): """ - 商家余额提现校验(退出平台) - 包含:订单、自身罚单、申请的罚单检查 + 商家余额提现校验:仅校验订单状态,允许已完成(3)与已退款(5),其余状态不可提现。 """ try: shangjia = UserShangjia.objects.get(user=user_main) @@ -2160,7 +2166,6 @@ class TixianShenqingView(APIView): if shangjia.yue < jine: return {'code': 62, 'msg': f'商家余额不足,当前余额: {shangjia.yue}'} - # 订单检查(使用 Q 取反) unfinished_orders = DingdanShangjia.objects.filter( shangjia_id=user_main.yonghuid, ).exclude( @@ -2169,24 +2174,6 @@ class TixianShenqingView(APIView): if unfinished_orders: return {'code': 63, 'msg': '您还有未完成或未退款的订单,请先处理完毕再提现余额'} - # 自身被处罚的罚单检查(状态不是已缴纳(2)和已驳回(4)) - self_fadan = Fadan.objects.filter( - beichufa_id=user_main.yonghuid, - ).exclude( - zhuangtai__in=[2, 4] - ).exists() - if self_fadan: - return {'code': 64, 'msg': '您有未处理完毕的自身罚单(待缴纳/申诉中),请先处理'} - - # 申请的对他人处罚罚单检查(状态不是已缴纳(2)和已驳回(4)) - applied_fadan = Fadan.objects.filter( - shenqing_chufa=user_main.yonghuid, - ).exclude( - zhuangtai__in=[2, 4] - ).exists() - if applied_fadan: - return {'code': 65, 'msg': '您发起的对其他用户的处罚尚未处理完毕(待缴纳/申诉中),请等待完结'} - return {'code': 0, 'msg': 'ok', 'data': {'nicheng': shangjia.nicheng or ''}} def _check_dashou_yajin_withdraw(self, user_main, jine):