addonViews.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. from django.shortcuts import render
  2. from django.http import HttpResponse, HttpResponseRedirect
  3. #from django.contrib.auth.hashers import make_password, check_password
  4. #from django.views.decorators.cache import cache_page
  5. from .models import Organizer, CheckIn, Item, UserContent
  6. from .addonModels import Luckydraw
  7. from .functions import *
  8. import random
  9. def addonURL(request, url):
  10. if url == "luckydraw":
  11. # 幸运抽奖
  12. checkIn = CheckIn()
  13. luckydraw = Luckydraw()
  14. if request.method == 'POST':
  15. awardName = request.POST['award'].strip()
  16. awardQty = int(request.POST['qty'])
  17. checkIn_ID = request.POST['c_ID']
  18. IDs = Luckydraw.objects.filter(c_ID=checkIn_ID, result=None).order_by('order')[:awardQty].values('ID')
  19. Luckydraw.objects.filter(ID__in=IDs).update(result=awardName) # 将获奖状态写入数据库
  20. # 读取获奖名单
  21. luckydraw.c_ID = checkIn_ID
  22. luckydraw.result = awardName
  23. awardList = Luckydraw.getAwardList(luckydraw)
  24. result2 = None
  25. keys = None
  26. # try:
  27. # createTime = result[0]['createTime']
  28. # except:
  29. # createTime = None
  30. if len(awardList) != 0:
  31. keys = eval(awardList[0]['content']).keys()
  32. result2 = []
  33. for x in awardList:
  34. line = eval(x['content'])
  35. if x['result'] is None:
  36. line['result'] = ' '
  37. else:
  38. line['result'] = x['result']
  39. result2.append(line.values())
  40. return render(request, 'checkIn/addon/luckydrawResult.html', {'result': result2, 'keys': keys, 'award': awardName, 'c_ID': checkIn_ID})
  41. else: # 非POST访问
  42. if not checkGET(request, 'c_ID'):
  43. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  44. checkIn.ID = request.GET['c_ID']
  45. checkIn = CheckIn.searchByID(checkIn)
  46. if checkIn == None:
  47. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  48. # 验证checkIn 用户和登录用户是否一致。
  49. if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
  50. return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
  51. luckydraw.c_ID = checkIn.ID
  52. result = Luckydraw.getList(luckydraw)
  53. unluckyList = Luckydraw.getUnluckyList(luckydraw)
  54. luckyList = Luckydraw.getLuckyList(luckydraw)
  55. # result = mongoSearchByID(checkIn.ID)
  56. result2 = None
  57. keys = None
  58. try:
  59. createTime = result[0]['createTime']
  60. except:
  61. createTime = None
  62. if len(luckyList) != 0:
  63. keys = eval(luckyList[0]['content']).keys()
  64. result2 = []
  65. for x in luckyList:
  66. line = eval(x['content'])
  67. if x['result'] == None:
  68. line['result'] = ' '
  69. else:
  70. line['result'] = x['result']
  71. result2.append(line.values())
  72. #result2.append(eval(x['content']).values())
  73. return render(request, 'checkIn/addon/luckydraw.html', {'result': result2, 'keys': keys, 'c_ID': checkIn.ID, 'cutoffTime':createTime, 'totalQty':len(result), 'luckyQty':len(luckyList), 'unluckyQty': len(unluckyList)})
  74. if url == "createLuckyDrawList":
  75. checkIn = CheckIn()
  76. luckydraw = Luckydraw()
  77. userContent = UserContent()
  78. if not checkGET(request, 'c_ID'):
  79. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  80. checkIn.ID = request.GET['c_ID']
  81. checkIn = CheckIn.searchByID(checkIn)
  82. if checkIn == None:
  83. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  84. # 验证checkIn 用户和登录用户是否一致。
  85. if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
  86. return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
  87. userContent.c_ID = checkIn.ID
  88. result = UserContent.getContentList(userContent)
  89. for r in result:
  90. luckydraw.c_ID = checkIn.ID
  91. luckydraw.o_ID = checkIn.o_ID
  92. luckydraw.content = r['content']
  93. luckydraw.order = round(random.random(),6)
  94. Luckydraw.createNew(luckydraw)
  95. return HttpResponseRedirect('/addon/luckydraw/?c_ID=%s' %(checkIn.ID))
  96. if url == 'resetLuckydraw':
  97. # 重置抽奖
  98. checkIn = CheckIn()
  99. luckydraw = Luckydraw()
  100. if not checkGET(request, 'c_ID'):
  101. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  102. checkIn.ID = request.GET['c_ID']
  103. checkIn = CheckIn.searchByID(checkIn)
  104. if checkIn == None:
  105. return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
  106. # 验证checkIn 用户和登录用户是否一致。
  107. if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
  108. return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
  109. luckydraw.c_ID = checkIn.ID
  110. Luckydraw.clearByC_ID(luckydraw)
  111. return HttpResponseRedirect('/addon/createLuckyDrawList/?c_ID=%s' %(checkIn.ID))