update_class_commodity.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #coding=utf-8
  2. import imp
  3. import os
  4. import sys
  5. import traceback
  6. import datetime
  7. import django
  8. from django.utils import timezone
  9. from django.db import transaction
  10. from django.db.models import Sum
  11. def agent_order_expire_remind():
  12. classes = ClassCommodity.objects.filter()
  13. for c in classes:
  14. order = Order.objects.filter(student__classes=c.classes, status=Order.FINISH).aggregate(amount=Sum('total_amount'))
  15. c.price = order['amount']
  16. c.save()
  17. def setup_django_env(path):
  18. sys.path.insert(0, path)
  19. f, filename, desc = imp.find_module('settings', [path])
  20. imp.load_module('settings', f, filename, desc)
  21. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
  22. sys.path.append(os.path.abspath(os.path.join(path, os.path.pardir)))
  23. if __name__ == '__main__':
  24. dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
  25. setup_django_env(dirname+'/../bookshop_admin')
  26. django.setup()
  27. from apps.order.models import Order,Classes,ClassCommodity
  28. try:
  29. print('start=======',timezone.now())
  30. with transaction.atomic():
  31. agent_order_expire_remind()
  32. print('end========', timezone.now())
  33. except Exception as e:
  34. traceback.print_exc()