feat: 打手中心全量可配置图标下发与会员卡片图上传接口

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-05 17:36:31 +08:00
parent 69c7ffd962
commit 5754a69e0b
5 changed files with 157 additions and 6 deletions

View File

@@ -44,6 +44,7 @@ from .views.products import (
from .views.members import (
GetMemberListView, UpdateMemberView, AddMemberView,
ClubMemberCatalogView, ClubMemberEnableView, ClubMemberDisableView,
MemberCardImageUploadView,
)
from .views.guanli import (
GetGuanliListView, GetGuanliDetailView, PromoteGuanshiToZuzhangView,
@@ -102,6 +103,7 @@ __all__ = [
# members
'GetMemberListView', 'UpdateMemberView', 'AddMemberView',
'ClubMemberCatalogView', 'ClubMemberEnableView', 'ClubMemberDisableView',
'MemberCardImageUploadView',
# guanli
'GetGuanliListView', 'GetGuanliDetailView', 'PromoteGuanshiToZuzhangView',
'UpdateGuanliView',

View File

@@ -349,5 +349,27 @@ class ClubMemberDisableView(APIView):
return Response({'code': 0, 'msg': '已下架', 'data': data})
class MemberCardImageUploadView(APIView):
"""POST /jituan/houtai/hy-card-upload 上传会员充值卡片图"""
permission_classes = []
parser_classes = [MultiPartParser, FormParser, JSONParser]
def post(self, request):
username = (request.data.get('username') or request.data.get('phone') or '').strip()
huiyuan_id = (request.data.get('huiyuan_id') or '').strip()
field = (request.data.get('field') or 'card_image').strip()
file_obj = request.FILES.get('file')
if not username or not huiyuan_id or not file_obj:
return Response({'code': 400, 'msg': '参数不完整'})
kefu, permissions = verify_kefu_permission(request, username)
if kefu is None:
return permissions
if '3300a' not in permissions:
return Response({'code': 403, 'msg': '无权限'})
from jituan.services.club_member_admin import upload_member_card_image
data, err = upload_member_card_image(request, huiyuan_id, field, file_obj)
if err:
return Response({'code': 400, 'msg': err})
return Response({'code': 0, 'msg': '上传成功', 'data': data})