fix: 罚单/积分处罚归属申请人俱乐部;申请锁定分红缴纳按锁定值入账
This commit is contained in:
@@ -10,19 +10,82 @@ from jituan.services.club_context import (
|
||||
from jituan.services.club_user import get_user_club_id
|
||||
|
||||
|
||||
def resolve_penalty_club_id(order=None, penalized_user_id=None, request=None):
|
||||
"""创建罚单时写入 club_id。"""
|
||||
def _club_id_from_user_uid(uid):
|
||||
if not uid:
|
||||
return None
|
||||
from users.business_models import User
|
||||
u = User.query.filter(UserUID=str(uid)).first()
|
||||
if u:
|
||||
return get_user_club_id(u)
|
||||
return None
|
||||
|
||||
|
||||
def resolve_penalty_club_id(
|
||||
order=None,
|
||||
penalized_user_id=None,
|
||||
request=None,
|
||||
applicant_id=None,
|
||||
user=None,
|
||||
):
|
||||
"""
|
||||
创建金额罚单时写入 club_id。
|
||||
归属:申请人俱乐部 > 当前操作人/请求俱乐部 > 订单俱乐部 > 被罚人俱乐部 > xq。
|
||||
"""
|
||||
cid = _club_id_from_user_uid(applicant_id)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
if request is not None or user is not None:
|
||||
from jituan.services.club_write import resolve_club_id_for_write
|
||||
u = user or getattr(request, 'user', None)
|
||||
cid = resolve_club_id_for_write(request, u)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
if order is not None:
|
||||
cid = getattr(order, 'ClubID', None)
|
||||
if cid:
|
||||
return cid
|
||||
if penalized_user_id:
|
||||
from users.business_models import User
|
||||
u = User.query.filter(UserUID=penalized_user_id).first()
|
||||
if u:
|
||||
return get_user_club_id(u)
|
||||
if request is not None:
|
||||
return resolve_club_id_from_request(request)
|
||||
|
||||
cid = _club_id_from_user_uid(penalized_user_id)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
return CLUB_ID_DEFAULT
|
||||
|
||||
|
||||
def resolve_penalty_record_club_id(
|
||||
order_id=None,
|
||||
player_id=None,
|
||||
request=None,
|
||||
applicant_id=None,
|
||||
user=None,
|
||||
):
|
||||
"""
|
||||
创建积分处罚(chufajilu)时写入 club_id。
|
||||
归属规则与金额罚单一致:申请人俱乐部优先。
|
||||
"""
|
||||
cid = _club_id_from_user_uid(applicant_id)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
if request is not None or user is not None:
|
||||
from jituan.services.club_write import resolve_club_id_for_write
|
||||
u = user or getattr(request, 'user', None)
|
||||
cid = resolve_club_id_for_write(request, u)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
if order_id:
|
||||
from orders.models import Order
|
||||
o = Order.query.filter(OrderID=order_id).first()
|
||||
if o and getattr(o, 'ClubID', None):
|
||||
return o.ClubID
|
||||
|
||||
cid = _club_id_from_user_uid(player_id)
|
||||
if cid:
|
||||
return cid
|
||||
|
||||
return CLUB_ID_DEFAULT
|
||||
|
||||
|
||||
@@ -44,10 +107,9 @@ def resolve_gsfenhong_club_id(dingdan_id=None, dashouid=None, order=None, czjilu
|
||||
if o and getattr(o, 'ClubID', None):
|
||||
return o.ClubID
|
||||
if dashouid:
|
||||
from users.business_models import User
|
||||
u = User.query.filter(UserUID=dashouid).first()
|
||||
if u:
|
||||
return get_user_club_id(u)
|
||||
cid = _club_id_from_user_uid(dashouid)
|
||||
if cid:
|
||||
return cid
|
||||
return CLUB_ID_DEFAULT
|
||||
|
||||
|
||||
@@ -91,7 +153,7 @@ def _filter_club_penalty_like_qs(qs, request, user_id_field, order_id_field):
|
||||
if not parts:
|
||||
return qs.none()
|
||||
combined = parts[0]
|
||||
for p in parts[1:]:
|
||||
for p in parts[1]:
|
||||
combined |= p
|
||||
return qs.filter(combined)
|
||||
|
||||
@@ -119,20 +181,6 @@ def forbid_penalty_out_of_scope(request, penalty):
|
||||
return None
|
||||
|
||||
|
||||
def resolve_penalty_record_club_id(order_id=None, player_id=None):
|
||||
if order_id:
|
||||
from orders.models import Order
|
||||
o = Order.query.filter(OrderID=order_id).first()
|
||||
if o and getattr(o, 'ClubID', None):
|
||||
return o.ClubID
|
||||
if player_id:
|
||||
from users.business_models import User
|
||||
u = User.query.filter(UserUID=player_id).first()
|
||||
if u:
|
||||
return get_user_club_id(u)
|
||||
return CLUB_ID_DEFAULT
|
||||
|
||||
|
||||
def filter_penalty_record_qs(qs, request):
|
||||
"""积分处罚记录(chufajilu)按俱乐部过滤。"""
|
||||
return _filter_club_penalty_like_qs(
|
||||
|
||||
Reference in New Issue
Block a user