51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
"""集团后台:俱乐部订单单向互通抢单配置。"""
|
|
from rest_framework.parsers import JSONParser
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from backend.utils import verify_kefu_permission
|
|
from jituan.services.admin_context import can_manage_admin_assignments
|
|
from jituan.services.order_grab_share import add_grab_link, delete_grab_link, list_grab_links
|
|
|
|
|
|
class ClubOrderGrabLinkManageView(APIView):
|
|
"""
|
|
POST /jituan/houtai/order-grab-link
|
|
action: list | add | delete
|
|
仅集团权限(can_manage_admin_assignments)可操作。
|
|
"""
|
|
permission_classes = [IsAuthenticated]
|
|
parser_classes = [JSONParser]
|
|
|
|
def post(self, request):
|
|
username = (request.data.get('username') or request.data.get('phone') or '').strip()
|
|
if not username:
|
|
return Response({'code': 400, 'msg': '缺少username'})
|
|
kefu, permissions = verify_kefu_permission(request, username)
|
|
if kefu is None:
|
|
return permissions
|
|
if not can_manage_admin_assignments(request.user, permissions):
|
|
return Response({'code': 403, 'msg': '仅集团权限可配置订单互通'})
|
|
|
|
action = (request.data.get('action') or 'list').strip()
|
|
if action == 'list':
|
|
return Response({'code': 0, 'msg': 'ok', 'data': {'list': list_grab_links()}})
|
|
|
|
if action == 'add':
|
|
data, err = add_grab_link(
|
|
request.data.get('grabber_club_id'),
|
|
request.data.get('order_club_id'),
|
|
)
|
|
if err:
|
|
return Response({'code': 400, 'msg': err})
|
|
return Response({'code': 0, 'msg': '已添加', 'data': data})
|
|
|
|
if action == 'delete':
|
|
ok, err = delete_grab_link(request.data.get('id'))
|
|
if not ok:
|
|
return Response({'code': 400, 'msg': err or '删除失败'})
|
|
return Response({'code': 0, 'msg': '已删除'})
|
|
|
|
return Response({'code': 400, 'msg': '无效 action'})
|