"""集团多俱乐部数据模型(新建表,不修改 gvsdsdk)。""" import uuid from decimal import Decimal from django.db import models from gvsdsdk.model_base import QModel class Club(QModel): """子公司 / 俱乐部主表。""" club_id = models.CharField(max_length=16, primary_key=True, verbose_name='俱乐部ID') name = models.CharField(max_length=64, verbose_name='展示名') status = models.IntegerField(default=1, verbose_name='1启用0停用') wx_appid = models.CharField(max_length=32, blank=True, default='') wx_secret = models.CharField(max_length=128, blank=True, default='') mch_id = models.CharField(max_length=32, blank=True, default='') pay_app_id = models.CharField(max_length=32, blank=True, default='') api_v3_key = models.CharField(max_length=128, blank=True, default='') cert_serial_no = models.CharField(max_length=64, blank=True, default='') private_key_path = models.CharField(max_length=255, blank=True, default='') platform_cert_dir = models.CharField(max_length=255, blank=True, default='') official_appid = models.CharField(max_length=32, blank=True, default='') official_secret = models.CharField(max_length=128, blank=True, default='') official_token = models.CharField(max_length=64, blank=True, default='') encoding_aes_key = models.CharField(max_length=64, blank=True, default='') template_id = models.CharField(max_length=64, blank=True, default='') template_max_per_minute = models.IntegerField(default=950) h5_domain = models.CharField(max_length=128, blank=True, default='') oss_prefix = models.CharField(max_length=128, blank=True, default='') goeasy_appkey = models.CharField(max_length=64, blank=True, default='') goeasy_secret = models.CharField(max_length=128, blank=True, default='') config_json = models.JSONField(default=dict, blank=True) company_uuid = models.BinaryField(max_length=16, null=True, blank=True) sort_order = models.IntegerField(default=0) CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club' verbose_name = '俱乐部' class UserWxOpenid(QModel): """微信 openid 与俱乐部用户绑定(club_id + openid 唯一)。""" club_id = models.CharField(max_length=16, db_index=True) openid = models.CharField(max_length=64, db_index=True) yonghuid = models.CharField(max_length=7, db_index=True, verbose_name='用户ID') unionid = models.CharField(max_length=64, null=True, blank=True) CreateTime = models.DateTimeField(auto_now_add=True) class Meta: db_table = 'user_wx_openid' unique_together = [['club_id', 'openid']] class AdminAssignment(QModel): """管理任职:集团或子公司后台权限范围。""" yonghuid = models.CharField(max_length=7, db_index=True) club_id = models.CharField(max_length=16, null=True, blank=True, db_index=True, verbose_name='NULL=集团任职') role_code = models.CharField(max_length=50, default='CLUB_ADMIN') data_scope = models.CharField(max_length=20, default='SINGLE_CLUB') is_primary = models.BooleanField(default=False) granted_by = models.CharField(max_length=7, blank=True, default='') status = models.IntegerField(default=1, verbose_name='1有效0停用') CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'admin_assignment' unique_together = [['yonghuid', 'club_id', 'role_code']] class AdminAuditLog(QModel): """后台敏感操作审计(改余额等)。""" club_id = models.CharField(max_length=16, null=True, blank=True, db_index=True) operator_yonghuid = models.CharField(max_length=16, db_index=True) operator_role_code = models.CharField(max_length=50, blank=True, default='') target_yonghuid = models.CharField(max_length=7, null=True, blank=True) action = models.CharField(max_length=64, db_index=True) resource_type = models.CharField(max_length=32, blank=True, default='') resource_id = models.CharField(max_length=64, blank=True, default='') field_name = models.CharField(max_length=64, blank=True, default='') value_before = models.TextField(null=True, blank=True) value_after = models.TextField(null=True, blank=True) request_ip = models.CharField(max_length=64, blank=True, default='') remark = models.CharField(max_length=500, blank=True, default='') CreateTime = models.DateTimeField(auto_now_add=True) class Meta: db_table = 'admin_audit_log' indexes = [models.Index(fields=['club_id', '-CreateTime'])] class ClubHuiyuanPrice(QModel): """各俱乐部会员售价/分成(全局 huiyuan_id 定义不变)。""" club_id = models.CharField(max_length=16, db_index=True) huiyuan_id = models.CharField(max_length=6, db_index=True) jiage = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal('0.00')) guanshifc = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal('0.00')) zuzhangfc = models.DecimalField(max_digits=10, decimal_places=2, default=Decimal('0.00')) is_enabled = models.BooleanField(default=True) bankuai_id = models.IntegerField(null=True, blank=True) CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club_huiyuan_price' unique_together = [['club_id', 'huiyuan_id']] class ClubLilubiao(QModel): """各俱乐部分红/手续费配置(对应 lilubiao.fadanpingtai)。""" club_id = models.CharField(max_length=16, db_index=True) config_type = models.IntegerField(db_index=True, verbose_name='同 lilubiao.fadanpingtai') lilv = models.DecimalField(max_digits=10, decimal_places=4, default=Decimal('0.0000')) remark = models.CharField(max_length=255, blank=True, default='') CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club_lilubiao' unique_together = [['club_id', 'config_type']] class ClubWithdrawConfig(QModel): club_id = models.CharField(max_length=16, primary_key=True) mode = models.IntegerField(default=1, verbose_name='1自动2手动') CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club_withdraw_config' class ClubTixianQuota(QModel): club_id = models.CharField(max_length=16, db_index=True) leixing = models.IntegerField(db_index=True) daily_limit = models.DecimalField(max_digits=12, decimal_places=2, default=Decimal('0.00')) CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club_tixian_quota' unique_together = [['club_id', 'leixing']] class ClubFadanFenhongLilv(QModel): club_id = models.CharField(max_length=16, db_index=True) shenfen = models.IntegerField(db_index=True) lilv = models.DecimalField(max_digits=10, decimal_places=4, default=Decimal('0.0000')) CreateTime = models.DateTimeField(auto_now_add=True) UpdateTime = models.DateTimeField(auto_now=True) class Meta: db_table = 'club_fadan_fenhong_lilv' unique_together = [['club_id', 'shenfen']]