From aaf0c95925797ca44811070df00f57cb5851b709 Mon Sep 17 00:00:00 2001 From: XingQue Date: Sun, 5 Jul 2026 16:25:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=9A=E5=91=98=E5=85=85=E5=80=BC?= =?UTF-8?q?=E9=A1=B5=E5=8D=A1=E7=89=87=E5=9B=BE=E4=B8=8E=20miniapp=20?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E5=9B=BE=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/views/members.py | 2 ++ .../0009_club_huiyuan_recharge_ui.py | 27 +++++++++++++++++++ jituan/models.py | 6 +++++ jituan/services/club_member_admin.py | 6 +++++ jituan/services/miniapp_assets.py | 6 +++++ 5 files changed, 47 insertions(+) create mode 100644 jituan/migrations/0009_club_huiyuan_recharge_ui.py diff --git a/backend/views/members.py b/backend/views/members.py index 59943be..17130c5 100644 --- a/backend/views/members.py +++ b/backend/views/members.py @@ -204,6 +204,8 @@ class UpdateMemberView(APIView): 'trial_days': request.data.get('trial_days'), 'trial_guanshifc': request.data.get('trial_guanshifc'), 'trial_zuzhangfc': request.data.get('trial_zuzhangfc'), + 'card_image': request.data.get('card_image'), + 'card_bg': request.data.get('card_bg'), } data, err = update_member_for_club( request, huiyuan_id, jieshao, jiage, guanshifc, zuzhangfc, jtjieshao, extra=extra, diff --git a/jituan/migrations/0009_club_huiyuan_recharge_ui.py b/jituan/migrations/0009_club_huiyuan_recharge_ui.py new file mode 100644 index 0000000..b374799 --- /dev/null +++ b/jituan/migrations/0009_club_huiyuan_recharge_ui.py @@ -0,0 +1,27 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('jituan', '0008_dashou_exam'), + ] + + operations = [ + migrations.AddField( + model_name='clubhuiyuanprice', + name='card_image', + field=models.CharField( + blank=True, default='', max_length=500, + verbose_name='充值页会员卡片装饰图(相对URL)', + ), + ), + migrations.AddField( + model_name='clubhuiyuanprice', + name='card_bg', + field=models.CharField( + blank=True, default='', max_length=500, + verbose_name='充值页会员卡片背景图(相对URL,可选)', + ), + ), + ] diff --git a/jituan/models.py b/jituan/models.py index 637b654..918e713 100644 --- a/jituan/models.py +++ b/jituan/models.py @@ -111,6 +111,12 @@ class ClubHuiyuanPrice(QModel): trial_zuzhangfc = models.DecimalField( max_digits=10, decimal_places=2, default=Decimal('0.00'), verbose_name='体验组长分成', ) + card_image = models.CharField( + max_length=500, blank=True, default='', verbose_name='充值页会员卡片装饰图(相对URL)', + ) + card_bg = models.CharField( + max_length=500, blank=True, default='', verbose_name='充值页会员卡片背景图(相对URL,可选)', + ) is_enabled = models.BooleanField(default=True) bankuai_id = models.IntegerField(null=True, blank=True) CreateTime = models.DateTimeField(auto_now_add=True) diff --git a/jituan/services/club_member_admin.py b/jituan/services/club_member_admin.py index 62bac72..8175dd1 100644 --- a/jituan/services/club_member_admin.py +++ b/jituan/services/club_member_admin.py @@ -31,6 +31,8 @@ def _price_row_to_dict(row): 'trial_days': int(row.trial_days or 0), 'trial_guanshifc': str(row.trial_guanshifc or 0), 'trial_zuzhangfc': str(row.trial_zuzhangfc or 0), + 'card_image': (row.card_image or '').strip(), + 'card_bg': (row.card_bg or '').strip(), } @@ -211,6 +213,10 @@ def update_member_for_club(request, huiyuan_id, jieshao, jiage, guanshifc, zuzha row.is_enabled = True for k, v in trial_fields.items(): setattr(row, k, v) + if 'card_image' in extra: + row.card_image = (extra.get('card_image') or '').strip() + if 'card_bg' in extra: + row.card_bg = (extra.get('card_bg') or '').strip() row.save() if club_id == CLUB_ID_DEFAULT: diff --git a/jituan/services/miniapp_assets.py b/jituan/services/miniapp_assets.py index 38d0948..5cbb0d0 100644 --- a/jituan/services/miniapp_assets.py +++ b/jituan/services/miniapp_assets.py @@ -26,6 +26,9 @@ MINIAPP_ICON_META = [ ('merchant_refresh', '我的页-刷新'), ('fighter_recharge_member', '打手中心-会员充值横幅(左侧)'), ('fighter_recharge_deposit', '打手中心-保证金充值横幅(右侧)'), + ('fighter_recharge_vip_bg', '打手会员充值页-顶部背景图'), + ('fighter_deposit_bg', '打手保证金页-顶部背景图'), + ('fighter_deposit_hero', '打手保证金页-卡片右侧装饰图'), ('mine_pindao', '频道入口'), ('icon_refresh', '通用刷新'), ('guanshi_poster_bg', '管事推广海报背景'), @@ -52,6 +55,9 @@ MINIAPP_ICON_DEFAULTS['merchant_home_notice'] = 'beijing/shangjiaduan/home/notic MINIAPP_ICON_DEFAULTS['merchant_home_stat_bg'] = 'beijing/shangjiaduan/stat_card_bg.png' MINIAPP_ICON_DEFAULTS['fighter_recharge_member'] = f'{ICON_FOLDER}/fighter_recharge_member.png' MINIAPP_ICON_DEFAULTS['fighter_recharge_deposit'] = f'{ICON_FOLDER}/fighter_recharge_deposit.png' +MINIAPP_ICON_DEFAULTS['fighter_recharge_vip_bg'] = f'{ICON_FOLDER}/fighter_recharge_vip_bg.png' +MINIAPP_ICON_DEFAULTS['fighter_deposit_bg'] = f'{ICON_FOLDER}/fighter_deposit_bg.png' +MINIAPP_ICON_DEFAULTS['fighter_deposit_hero'] = f'{ICON_FOLDER}/fighter_deposit_hero.png' MINIAPP_ICON_DEFAULTS['mine_pindao'] = 'beijing/tubiao/grzx_guanzhualong.jpg' MINIAPP_ICON_DEFAULTS['guanshi_poster_bg'] = 'beijing/haibaobeijing.jpg' MINIAPP_ICON_DEFAULTS['zuzhang_poster_bg'] = 'beijing/zuzhangbeijing.jpg'