Files
Django/jituan/views_club_catalog.py

195 lines
8.5 KiB
Python

"""俱乐部商品类型 / 考核标签筛选配置 — 后台 API。"""
from rest_framework.parsers import FormParser, JSONParser, MultiPartParser
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from backend.view import verify_kefu_permission
class ClubShangpinLeixingListView(APIView):
"""POST /jituan/houtai/club-leixing-list"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
if not phone:
return Response({'code': 401, 'msg': '缺少客服账号'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限管理小程序商品类型'})
from jituan.services.club_shangpin_leixing import build_club_leixing_admin_list
payload = build_club_leixing_admin_list(request)
return Response({'code': 0, 'data': payload})
class ClubShangpinLeixingCatalogView(APIView):
"""POST /jituan/houtai/club-leixing-catalog"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
if not phone:
return Response({'code': 401, 'msg': '缺少客服账号'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_shangpin_leixing import build_club_leixing_catalog
return Response({'code': 0, 'data': build_club_leixing_catalog(request)})
class ClubShangpinLeixingEnableView(APIView):
"""POST /jituan/houtai/club-leixing-enable"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
leixing_id = request.data.get('leixing_id')
if not phone or not leixing_id:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_shangpin_leixing import enable_leixing_for_club
data, err = enable_leixing_for_club(request, int(leixing_id), request.data.get('paixu'))
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '上架成功', 'data': data})
class ClubShangpinLeixingDisableView(APIView):
"""POST /jituan/houtai/club-leixing-disable"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
leixing_id = request.data.get('leixing_id')
if not phone or not leixing_id:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_shangpin_leixing import disable_leixing_for_club
data, err = disable_leixing_for_club(request, int(leixing_id))
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '已下架', 'data': data})
class ClubShangpinLeixingIconView(APIView):
"""POST /jituan/houtai/club-leixing-icon"""
permission_classes = [IsAuthenticated]
parser_classes = [MultiPartParser, FormParser, JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
leixing_id = request.data.get('leixing_id')
file_obj = request.FILES.get('file')
if not phone or not leixing_id or not file_obj:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_shangpin_leixing import upload_leixing_icon
data, err = upload_leixing_icon(request, int(leixing_id), file_obj)
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '上传成功', 'data': data})
class ClubKaoheChenghaoListView(APIView):
"""POST /jituan/houtai/club-kaohe-list"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
if not phone:
return Response({'code': 401, 'msg': '缺少客服账号'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
bankuai_id = request.data.get('bankuai_id')
from jituan.services.club_kaohe_chenghao import build_club_kaohe_admin_list
payload = build_club_kaohe_admin_list(request, bankuai_id=bankuai_id)
return Response({'code': 0, 'data': payload})
class ClubKaoheChenghaoCatalogView(APIView):
"""POST /jituan/houtai/club-kaohe-catalog"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
if not phone:
return Response({'code': 401, 'msg': '缺少客服账号'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
bankuai_id = request.data.get('bankuai_id')
from jituan.services.club_kaohe_chenghao import build_club_kaohe_catalog
return Response({'code': 0, 'data': build_club_kaohe_catalog(request, bankuai_id=bankuai_id)})
class ClubKaoheChenghaoEnableView(APIView):
"""POST /jituan/houtai/club-kaohe-enable"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
chenghao_id = request.data.get('chenghao_id')
if not phone or not chenghao_id:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_kaohe_chenghao import enable_chenghao_for_club
data, err = enable_chenghao_for_club(request, int(chenghao_id))
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '上架成功', 'data': data})
class ClubKaoheChenghaoDisableView(APIView):
"""POST /jituan/houtai/club-kaohe-disable"""
permission_classes = [IsAuthenticated]
parser_classes = [JSONParser]
def post(self, request):
phone = (request.data.get('phone') or request.data.get('username') or '').strip()
chenghao_id = request.data.get('chenghao_id')
if not phone or not chenghao_id:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, phone)
if kefu is None:
return permissions
if '8080a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_kaohe_chenghao import disable_chenghao_for_club
data, err = disable_chenghao_for_club(request, int(chenghao_id))
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '已下架', 'data': data})