fix: 打手登录先认身份,默认邀请码改由后端下发
This commit is contained in:
@@ -285,6 +285,37 @@ class ClubListView(APIView):
|
||||
return Response({'code': 0, 'msg': 'ok', 'data': data})
|
||||
|
||||
|
||||
class ClubDefaultInviteView(APIView):
|
||||
"""
|
||||
GET/POST /jituan/club/default-invite
|
||||
小程序登录页拉取当前俱乐部默认打手邀请码(AllowAny)。
|
||||
俱乐部由 X-Club-Id / AppID 解析;码来自 config_json.default_dashou_invite 或内置回落。
|
||||
"""
|
||||
permission_classes = [AllowAny]
|
||||
throttle_classes = [AnonRateThrottle]
|
||||
|
||||
def _payload(self, request):
|
||||
from jituan.services.club_resolver import resolve_club_id_for_wechat_request
|
||||
from jituan.services.default_invite import get_club_default_dashou_invite
|
||||
|
||||
club_id = resolve_club_id_for_wechat_request(request)
|
||||
invite = get_club_default_dashou_invite(club_id)
|
||||
return Response({
|
||||
'code': 0,
|
||||
'msg': 'ok',
|
||||
'data': {
|
||||
'club_id': club_id or '',
|
||||
'inviteCode': invite,
|
||||
},
|
||||
})
|
||||
|
||||
def get(self, request):
|
||||
return self._payload(request)
|
||||
|
||||
def post(self, request):
|
||||
return self._payload(request)
|
||||
|
||||
|
||||
class ClubMeContextView(APIView):
|
||||
"""GET /jituan/auth/me-context — 已登录客服刷新俱乐部上下文。"""
|
||||
permission_classes = [IsAuthenticated]
|
||||
@@ -600,6 +631,9 @@ class ClubManageView(APIView):
|
||||
}
|
||||
|
||||
def _serialize(self, club, full=False):
|
||||
from jituan.services.default_invite import get_club_default_dashou_invite
|
||||
|
||||
cfg_json = club.config_json or {}
|
||||
base = {
|
||||
'club_id': club.club_id,
|
||||
'name': club.name,
|
||||
@@ -614,6 +648,7 @@ class ClubManageView(APIView):
|
||||
'goeasy_appkey': club.goeasy_appkey,
|
||||
'template_id': club.template_id,
|
||||
'sort_order': club.sort_order,
|
||||
'default_dashou_invite': get_club_default_dashou_invite(club.club_id),
|
||||
}
|
||||
if full:
|
||||
mch_key = self._effective_mch_key(club)
|
||||
@@ -633,6 +668,7 @@ class ClubManageView(APIView):
|
||||
'encoding_aes_key': club.encoding_aes_key,
|
||||
'goeasy_secret': club.goeasy_secret,
|
||||
'template_max_per_minute': club.template_max_per_minute,
|
||||
'default_dashou_invite_raw': (cfg_json.get('default_dashou_invite') or '').strip(),
|
||||
})
|
||||
return base
|
||||
|
||||
@@ -683,6 +719,11 @@ class ClubManageView(APIView):
|
||||
self._sync_mch_key_to_config_json(club, request.data.get('mch_key'))
|
||||
if 'config_json' not in update_fields:
|
||||
update_fields.append('config_json')
|
||||
if 'default_dashou_invite' in request.data:
|
||||
from jituan.services.default_invite import set_club_default_dashou_invite
|
||||
set_club_default_dashou_invite(club, request.data.get('default_dashou_invite'))
|
||||
if 'config_json' not in update_fields:
|
||||
update_fields.append('config_json')
|
||||
if update_fields:
|
||||
club.save(update_fields=update_fields)
|
||||
return Response({
|
||||
|
||||
Reference in New Issue
Block a user