Files
Django/jituan/views_order_grab_share.py
T

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'})