This commit is contained in:
jeremygan2021
2026-02-12 16:54:16 +08:00
parent 1919ab2227
commit 5a7043fa1c
17 changed files with 384 additions and 51 deletions

View File

@@ -22,8 +22,8 @@ class CommissionLogSerializer(serializers.ModelSerializer):
class WeChatUserSerializer(serializers.ModelSerializer):
class Meta:
model = WeChatUser
fields = ['id', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number', 'is_star', 'title']
read_only_fields = ['id', 'phone_number', 'is_star', 'title']
fields = ['id', 'openid', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number', 'is_star', 'title']
read_only_fields = ['id', 'openid', 'phone_number', 'is_star', 'title']
class DistributorSerializer(serializers.ModelSerializer):
user_info = WeChatUserSerializer(source='user', read_only=True)

View File

@@ -15,7 +15,7 @@ router.register(r'courses', VCCourseViewSet)
router.register(r'course-enrollments', CourseEnrollmentViewSet)
router.register(r'service-orders', ServiceOrderViewSet)
router.register(r'distributor', DistributorViewSet, basename='distributor')
router.register(r'users', WeChatUserViewSet)
router.register(r'users', WeChatUserViewSet, basename='wechatuser')
urlpatterns = [
re_path(r'^finish/?$', payment_finish, name='payment-finish'),

View File

@@ -1001,6 +1001,7 @@ def wechat_login(request):
return Response({
'token': token,
'id': user.id,
'openid': openid,
'is_new': created,
'nickname': user.nickname
@@ -1092,6 +1093,7 @@ def phone_login(request):
return Response({
'token': token,
'id': user.id,
'openid': user.openid,
'nickname': user.nickname,
'avatar_url': user.avatar_url,
@@ -1341,6 +1343,15 @@ class WeChatUserViewSet(viewsets.ReadOnlyModelViewSet):
queryset = WeChatUser.objects.all()
serializer_class = WeChatUserSerializer
@action(detail=False, methods=['get'])
def me(self, request):
"""获取当前用户信息"""
user = get_current_wechat_user(request)
if not user:
return Response({'error': 'Unauthorized'}, status=401)
serializer = self.get_serializer(user)
return Response(serializer.data)
@action(detail=False, methods=['get'])
def stars(self, request):
"""