Files
Django/jituan/management/commands/backfill_gsfenhong_club_id.py

24 lines
975 B
Python

"""按充值订单 / 订单 / 用户回填 gsfenhong.club_id。"""
from django.core.management.base import BaseCommand
from django.db import transaction
from jituan.constants import CLUB_ID_DEFAULT
from jituan.services.club_penalty import resolve_gsfenhong_club_id
from products.models import Gsfenhong
class Command(BaseCommand):
help = '回填 gsfenhong.club_id'
def handle(self, *args, **options):
updated = 0
with transaction.atomic():
for row in Gsfenhong.query.all().only('dingdan_id', 'dashouid', 'club_id'):
cid = resolve_gsfenhong_club_id(dingdan_id=row.dingdan_id, dashouid=row.dashouid)
if not cid:
cid = CLUB_ID_DEFAULT
if row.club_id != cid:
Gsfenhong.query.filter(dingdan_id=row.dingdan_id).update(club_id=cid)
updated += 1
self.stdout.write(self.style.SUCCESS(f'gsfenhong club_id 更新 {updated}'))