def get_prize(request): webapp_user = request.webapp_user red_envelope_id = int(request.GET['red_envelope_id']) if request.member: member = request.member else: member = None try: red_envelope = RedEnvelope.objects.get(id=red_envelope_id) except: raise Http404(u"该活动信息不存在") response = create_response(200) if webapp_user and RedEnvelopeRecord.objects.filter( owner=red_envelope.owner, webapp_user_id=webapp_user.id, red_envelope=red_envelope).count() > 0: red_envelope_record = RedEnvelopeRecord.objects.filter( owner=red_envelope.owner, webapp_user_id=webapp_user.id, red_envelope=red_envelope)[0] cur_prize = JsonResponse() cur_prize.name = red_envelope_record.prize_name cur_prize.detail = red_envelope_record.prize_detail cur_prize.prize_level = red_envelope_record.prize_level response.data.record_prize = cur_prize else: relations = RedEnvelopeHasPrize.objects.filter( red_envelope=red_envelope) prize_ids = [r.prize_id for r in relations] prizes = Prize.objects.filter(id__in=prize_ids) prizes_count = 0 for prize in prizes: prizes_count = prize.count + prizes_count webapp_id = red_envelope.owner.get_profile().webapp_id sample_space_size = prizes_count # prize = draw_lottery(prizes, webapp_id, sample_space_size=sample_space_size) prize = draw_lottery_new(prizes, webapp_id) red_envelope_record = __record_prize(webapp_user, red_envelope, prize, member) cur_prize = JsonResponse() cur_prize.name = red_envelope_record.prize_name cur_prize.detail = red_envelope_record.prize_detail cur_prize.prize_level = red_envelope_record.prize_level response.data.record_prize = cur_prize # cur_member = JsonResponse() # cur_member.integral = webapp_user.integral_info['count'] # response.data.member = cur_member return response.get_response()
def edit_lottery_view(request, id): id = int(id) if id: lottery = Lottery.objects.get(id=id) lottery.can_update = False if lottery.status == LOTTERY_STATUS_NO_START: lottery.can_update = True relations = LotteryHasPrize.objects.filter(lottery=lottery) prize_ids = [r.prize_id for r in relations] prizes = Prize.objects.filter(id__in=prize_ids) id2prize = dict([(p.id, p) for p in prizes]) lottery.prizes = [] for r in relations: prize = id2prize[r.prize_id] prize.prize_source = r.prize_source prize.prize_type = r.prize_type lottery.prizes.append(prize) lottery.prizes.sort(lambda x,y: cmp(x.level, y.level)) #转换为json response = JsonResponse() response.id = lottery.id response.name = lottery.name response.detail = lottery.detail response.expend_integral = lottery.expend_integral response.can_repeat = lottery.can_repeat response.daily_play_count = lottery.daily_play_count response.type = lottery.type response.award_hour = lottery.award_hour response.not_win_desc = lottery.not_win_desc if lottery.award_type: response.award_type = lottery.award_type else: response.award_type = '' response.start_at = lottery.start_at.strftime("%Y-%m-%d") response.end_at = lottery.end_at.strftime("%Y-%m-%d") response.prizes = {} for prize in lottery.prizes: prize_json = {} prize_json['prize_source'] = prize.prize_source prize_json['prize_type'] = prize.prize_type prize_json['prize_name'] = prize.name prize_json['prize_level'] = prize.level prize_json['prize_odds'] = prize.odds prize_json['prize_count'] = prize.count response.prizes[prize.id] = prize_json lottery_json = response.get_json() else: lottery = {'can_update': True} lottery_json = '' coupon_rules = get_coupon_rules(request.user) c = RequestContext(request, { 'first_nav_name': MARKET_TOOLS_NAV, 'second_navs': export.get_second_navs(request), 'second_nav_name': SECOND_NAV_NAME, 'lottery': lottery, 'lottery_json':lottery_json, 'coupon_rules':coupon_rules }) return render_to_response('lottery/editor/edit_lottery.html', c)