123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- from django.shortcuts import render
- from django.http import HttpResponse, HttpResponseRedirect
- #from django.contrib.auth.hashers import make_password, check_password
- #from django.views.decorators.cache import cache_page
- from .models import Organizer, CheckIn, Item, UserContent
- from .addonModels import Luckydraw
- from .functions import *
- import random
- def addonURL(request, url):
- if url == "luckydraw":
- # 幸运抽奖
- checkIn = CheckIn()
- luckydraw = Luckydraw()
- if request.method == 'POST':
- awardName = request.POST['award'].strip()
- awardQty = int(request.POST['qty'])
- checkIn_ID = request.POST['c_ID']
- IDs = Luckydraw.objects.filter(c_ID=checkIn_ID, result=None).order_by('order')[:awardQty].values('ID')
- Luckydraw.objects.filter(ID__in=IDs).update(result=awardName) # 将获奖状态写入数据库
- # 读取获奖名单
- luckydraw.c_ID = checkIn_ID
- luckydraw.result = awardName
- awardList = Luckydraw.getAwardList(luckydraw)
- result2 = None
- keys = None
- # try:
- # createTime = result[0]['createTime']
- # except:
- # createTime = None
- if len(awardList) != 0:
- keys = eval(awardList[0]['content']).keys()
- result2 = []
- for x in awardList:
- line = eval(x['content'])
- if x['result'] is None:
- line['result'] = ' '
- else:
- line['result'] = x['result']
- result2.append(line.values())
- return render(request, 'checkIn/addon/luckydrawResult.html', {'result': result2, 'keys': keys, 'award': awardName, 'c_ID': checkIn_ID})
- else: # 非POST访问
- if not checkGET(request, 'c_ID'):
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- checkIn.ID = request.GET['c_ID']
- checkIn = CheckIn.searchByID(checkIn)
- if checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- # 验证checkIn 用户和登录用户是否一致。
- if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
- luckydraw.c_ID = checkIn.ID
- result = Luckydraw.getList(luckydraw)
- unluckyList = Luckydraw.getUnluckyList(luckydraw)
- luckyList = Luckydraw.getLuckyList(luckydraw)
- # result = mongoSearchByID(checkIn.ID)
- result2 = None
- keys = None
- try:
- createTime = result[0]['createTime']
- except:
- createTime = None
- if len(luckyList) != 0:
- keys = eval(luckyList[0]['content']).keys()
- result2 = []
- for x in luckyList:
- line = eval(x['content'])
- if x['result'] == None:
- line['result'] = ' '
- else:
- line['result'] = x['result']
- result2.append(line.values())
- #result2.append(eval(x['content']).values())
- 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)})
- if url == "createLuckyDrawList":
- checkIn = CheckIn()
- luckydraw = Luckydraw()
- userContent = UserContent()
- if not checkGET(request, 'c_ID'):
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- checkIn.ID = request.GET['c_ID']
- checkIn = CheckIn.searchByID(checkIn)
- if checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- # 验证checkIn 用户和登录用户是否一致。
- if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
- userContent.c_ID = checkIn.ID
- result = UserContent.getContentList(userContent)
- for r in result:
- luckydraw.c_ID = checkIn.ID
- luckydraw.o_ID = checkIn.o_ID
- luckydraw.content = r['content']
- luckydraw.order = round(random.random(),6)
- Luckydraw.createNew(luckydraw)
- return HttpResponseRedirect('/addon/luckydraw/?c_ID=%s' %(checkIn.ID))
- if url == 'resetLuckydraw':
- # 重置抽奖
- checkIn = CheckIn()
- luckydraw = Luckydraw()
- if not checkGET(request, 'c_ID'):
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- checkIn.ID = request.GET['c_ID']
- checkIn = CheckIn.searchByID(checkIn)
- if checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': '没有输入ID或者ID错误', 'dirLink': '/'})
- # 验证checkIn 用户和登录用户是否一致。
- if (not checkCorrectO_ID(request, checkIn.o_ID)) or checkIn == None:
- return render(request, 'checkIn/directPage.html', {'alertMsg': 'c_ID有错误,请重新登录。', 'dirLink': '/checkIn/logout'})
- luckydraw.c_ID = checkIn.ID
- Luckydraw.clearByC_ID(luckydraw)
- return HttpResponseRedirect('/addon/createLuckyDrawList/?c_ID=%s' %(checkIn.ID))
|