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'] == 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))