Пример #1
0
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()
Пример #2
0
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)