Files
Django/jituan/management/commands/seed_club_lsx.py
XingQue de88e55378 fix: 不再自动创建 lsx 空俱乐部;新增按无 key 路径清理重复配置
cleanup_lsx_empty_club 只删无证书路径的龙先生相关俱乐部,保留已上传 key 的配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 21:43:12 +08:00

81 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""一键初始化龙先生电竞(lsx)俱乐部(默认不批量给所有客服加任职)。"""
from django.core.management import call_command
from django.core.management.base import BaseCommand
from jituan.models import Club
class Command(BaseCommand):
help = '创建龙先生电竞俱乐部(lsx);任职请单独 seed_admin_assignments --phone ...'
def add_arguments(self, parser):
parser.add_argument(
'--wx-appid', default='wx7ff90e9d024fcdb8', help='龙先生电竞小程序 appid',
)
parser.add_argument(
'--assignments',
action='store_true',
help='同时给 --phone 指定客服加 lsx 任职(需配合 --phone',
)
parser.add_argument(
'--phone', type=str, default='', help='与 --assignments 联用:客服手机号',
)
def handle(self, *args, **options):
wx_appid = (options.get('wx_appid') or '').strip()
club_id = 'lsx'
name = '龙先生电竞'
# 俱乐部应由后台「俱乐部配置」创建并上传证书;本命令不再自动 create_club
club = Club.query.filter(club_id=club_id).first()
if club is None:
self.stdout.write(self.style.ERROR(
f'俱乐部 {club_id} 不存在。请先在后台创建并上传支付 key'
f'不要用脚本自动建俱乐部(避免生成无证书空配置)。'
))
return
if wx_appid and (club.wx_appid or '') != wx_appid:
club.wx_appid = wx_appid
club.save(update_fields=['wx_appid'])
self.stdout.write(f'已更新 {club_id}.wx_appid = {wx_appid}')
else:
self.stdout.write(self.style.SUCCESS(
f'俱乐部 {club_id} 已存在name={club.name}),跳过创建。'
))
if options.get('assignments'):
phone = (options.get('phone') or '').strip()
if not phone:
self.stdout.write(self.style.WARNING(
'未指定 --phone跳过任职。示例'
'python manage.py seed_club_lsx --assignments --phone 你的手机号'
))
else:
call_command(
'seed_admin_assignments',
club_id=club_id,
phone=phone,
)
else:
self.stdout.write(
'未加任职。需要时在后台「数据范围」配置,或:'
'python manage.py seed_admin_assignments --phone 手机号 --club-id lsx'
)
keyed = any([
(club.pay_key_path or '').strip(),
(club.pay_cert_path or '').strip(),
(club.private_key_path or '').strip(),
(club.platform_cert_dir or '').strip(),
])
if not keyed:
self.stdout.write(self.style.WARNING(
f'{club_id} 当前无证书路径,请在后台上传 key'
f'若存在重复空俱乐部可用python manage.py cleanup_lsx_empty_club'
))
self.stdout.write(self.style.SUCCESS(
f'龙先生电竞 {club_id} 检查完成。'
))