feat: 小程序图标与频道配置 API(按俱乐部)

This commit is contained in:
XingQue
2026-06-26 04:03:52 +08:00
parent 141f17859a
commit 24949b1cb2
8 changed files with 540 additions and 1 deletions

View File

@@ -459,3 +459,63 @@ class PopupImage(QModel):
def __str__(self):
return f'{self.popup_config.popup_id} - 图片{self.sort_order}'
class ClubMiniappIcon(QModel):
"""小程序功能图标(按俱乐部,固定 icon_key + 存储桶相对路径)。"""
club_id = models.CharField(max_length=16, default='xq', db_index=True, verbose_name='俱乐部ID')
icon_key = models.CharField(max_length=64, db_index=True, verbose_name='图标键')
label = models.CharField(max_length=100, blank=True, default='', verbose_name='展示名称')
image_path = models.CharField(max_length=500, blank=True, default='', verbose_name='图片相对路径')
description = models.CharField(max_length=300, blank=True, default='', verbose_name='说明')
is_active = models.BooleanField(default=True, verbose_name='是否启用')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'club_miniapp_icon'
verbose_name = '小程序图标'
verbose_name_plural = verbose_name
unique_together = [['club_id', 'icon_key']]
ordering = ['icon_key']
def __str__(self):
return f'{self.club_id}:{self.icon_key}'
class ClubPindao(QModel):
"""俱乐部频道配置(每俱乐部一条)。"""
club_id = models.CharField(max_length=16, default='xq', unique=True, verbose_name='俱乐部ID')
channel_no = models.CharField(max_length=100, blank=True, default='', verbose_name='频道号')
title = models.CharField(max_length=100, blank=True, default='频道', verbose_name='标题')
is_active = models.BooleanField(default=True, verbose_name='是否启用')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
UpdateTime = models.DateTimeField(auto_now=True, verbose_name='更新时间')
class Meta:
db_table = 'club_pindao'
verbose_name = '俱乐部频道'
verbose_name_plural = verbose_name
def __str__(self):
return f'{self.club_id} 频道'
class ClubPindaoImage(QModel):
"""频道展示图片(多张)。"""
club_id = models.CharField(max_length=16, default='xq', db_index=True, verbose_name='俱乐部ID')
pindao = models.ForeignKey(
ClubPindao, on_delete=models.CASCADE, related_name='images', null=True, blank=True,
)
image_path = models.CharField(max_length=500, verbose_name='图片相对路径')
sort_order = models.PositiveIntegerField(default=0, verbose_name='排序')
CreateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
class Meta:
db_table = 'club_pindao_image'
verbose_name = '频道图片'
verbose_name_plural = verbose_name
ordering = ['sort_order', 'id']
def __str__(self):
return f'{self.club_id} 频道图{self.sort_order}'