adjust_virtual_card_need_renew.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # coding=utf-8
  2. import click
  3. from base import init_env
  4. init_env(interactive = True)
  5. from apps.web.agent.models import Agent
  6. from apps.web.dealer.models import Dealer, VirtualCard
  7. @click.group()
  8. def cli():
  9. click.echo(u"本脚本用于修改已经发行的虚拟卡卷 可续卡时间")
  10. def get_card_type_by_agent(agentId):
  11. agent = Agent.objects.get(id=agentId)
  12. if not agent:
  13. return
  14. dealerIds = [str(dealer.id) for dealer in Dealer.objects.filter(agentId=agentId).only("id", "agentId")]
  15. return VirtualCard.objects.filter(dealerId__in=dealerIds)
  16. def get_card_type_by_dealer(dealerId):
  17. return VirtualCard.objects.filter(dealerId=dealerId)
  18. def get_card_type_by_card(cardId):
  19. return VirtualCard.objects.filter(id=cardId)
  20. @cli.command()
  21. @click.option('--agent', prompt=u'代理商ID:', default="")
  22. @click.option('--dealer', prompt=u'经销商ID:', default="")
  23. @click.option('--card', prompt=u'发行的卡ID:', default="")
  24. @click.option('--nax', prompt=u'过期后可续费天数:')
  25. @click.option('--nin', prompt=u'过期前可续费天数:')
  26. def charge_need_renew_time(agent, dealer, card, nax, nin):
  27. if agent:
  28. cardTypes = get_card_type_by_agent(agent)
  29. elif dealer:
  30. cardTypes = get_card_type_by_dealer(dealer)
  31. elif card:
  32. cardTypes = get_card_type_by_card(card)
  33. else:
  34. click.secho(u"无任何输入信息", blink=True, bold=True, bg='red')
  35. return
  36. if not cardTypes:
  37. click.secho(u"未查询到有效卡", blink=True, bold=True, bg='red')
  38. return
  39. count = cardTypes.count()
  40. for card in cardTypes:
  41. card.needRenewMax = int(nax)
  42. card.needRenewMin = int(nin)
  43. card.save()
  44. click.secho(u"共修改{}张".format(count), blink=True, bold=True, bg='red')
  45. if __name__ == '__main__':
  46. charge_need_renew_time()