From f57edbd4ee3647525a217f70c81029e01c35e6cd Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Thu, 26 Feb 2026 18:55:46 +0800 Subject: [PATCH] debug --- .../0037_wechatuser_has_web_badge.py | 18 ++++++++++++++++++ backend/shop/models.py | 3 +++ backend/shop/serializers.py | 4 ++-- backend/shop/views.py | 3 +++ miniprogram/src/pages/user/index.tsx | 12 +++++++----- 5 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 backend/shop/migrations/0037_wechatuser_has_web_badge.py diff --git a/backend/shop/migrations/0037_wechatuser_has_web_badge.py b/backend/shop/migrations/0037_wechatuser_has_web_badge.py new file mode 100644 index 0000000..48c5f98 --- /dev/null +++ b/backend/shop/migrations/0037_wechatuser_has_web_badge.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.1 on 2026-02-26 10:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('shop', '0036_alter_wechatuser_options_wechatuser_order'), + ] + + operations = [ + migrations.AddField( + model_name='wechatuser', + name='has_web_badge', + field=models.BooleanField(default=False, verbose_name='是否拥有Web徽章'), + ), + ] diff --git a/backend/shop/models.py b/backend/shop/models.py index 1c507ef..1f30c0b 100644 --- a/backend/shop/models.py +++ b/backend/shop/models.py @@ -27,6 +27,9 @@ class WeChatUser(models.Model): skills = models.JSONField(default=list, verbose_name="专家技能", blank=True, help_text="格式: [{'icon': 'url', 'text': 'React'}, ...]") order = models.IntegerField(default=0, verbose_name="排序权重", help_text="数字越小越靠前") + # 徽章标识 + has_web_badge = models.BooleanField(default=False, verbose_name="是否拥有Web徽章") + created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间") updated_at = models.DateTimeField(auto_now=True, verbose_name="更新时间") diff --git a/backend/shop/serializers.py b/backend/shop/serializers.py index 924343c..382f80a 100644 --- a/backend/shop/serializers.py +++ b/backend/shop/serializers.py @@ -25,8 +25,8 @@ class WeChatUserSerializer(serializers.ModelSerializer): class Meta: model = WeChatUser - fields = ['id', 'openid', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number', 'is_star', 'title', 'skills', 'is_admin', 'has_web_account'] - read_only_fields = ['id', 'openid', 'phone_number', 'is_star', 'title', 'skills', 'is_admin', 'has_web_account'] + fields = ['id', 'openid', 'nickname', 'avatar_url', 'gender', 'country', 'province', 'city', 'phone_number', 'is_star', 'title', 'skills', 'is_admin', 'has_web_account', 'has_web_badge'] + read_only_fields = ['id', 'openid', 'phone_number', 'is_star', 'title', 'skills', 'is_admin', 'has_web_account', 'has_web_badge'] def get_is_admin(self, obj): # 检查是否关联了系统用户且具有管理员权限 diff --git a/backend/shop/views.py b/backend/shop/views.py index 1b853f8..a360039 100644 --- a/backend/shop/views.py +++ b/backend/shop/views.py @@ -1109,6 +1109,9 @@ def wechat_login(request): mp_user.avatar_url = phone_user.avatar_url if mp_user.gender == 0 and phone_user.gender != 0: mp_user.gender = phone_user.gender + + # 标记拥有Web徽章 + mp_user.has_web_badge = True mp_user.save() # 删除旧用户 diff --git a/miniprogram/src/pages/user/index.tsx b/miniprogram/src/pages/user/index.tsx index 306acbc..4178e4c 100644 --- a/miniprogram/src/pages/user/index.tsx +++ b/miniprogram/src/pages/user/index.tsx @@ -331,11 +331,13 @@ export default function UserIndex() { )} - {/* 网页用户 */} - - 🌐 - 网页用户 - + {/* 网页用户徽章 - 仅在 has_web_badge 为 true 时显示 */} + {userInfo.has_web_badge && ( + + 🌐 + 网页用户 + + )} )}