コード例 #1
0
ファイル: views.py プロジェクト: peacefulyin/gh
def ranking(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        token = request_data.get('token', None)
        openid = request_data.get('openid', None)
        ranking_type = request_data.get('type', None)

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not ranking_type or not verify_auth_token(
                token_str, token) or ranking_type not in [1, 2]:
            return JsonResponse({'code': 400})

        if ranking_type == 1:
            return

        if ranking_type == 2:
            users = User.objects.order_by('-score').limit(20)
            return JsonResponse({
                'code': 200,
                'data': {
                    'ranking_list': users.to_json()
                }
            })
コード例 #2
0
ファイル: views.py プロジェクト: peacefulyin/gh
def get_user_prizes(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        openid = request_data.get('openid', None)
        token = request_data.get('token', None)

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not (verify_auth_token(token_str, token)):
            return JsonResponse({'code': 400})
        user = User.objects.get(openid=openid)
        ret_list = []
        for user_prize in user.prizes:
            user_prize.created_time = user_prize.created_time - datetime.timedelta(
                hours=8)
            temp = user_prize.prize.to_json()
            user_prize = json.loads(user_prize.to_json())
            user_prize['prize'] = temp

            # ret_list.append(json.dumps(user_prize))
            ret_list.append(user_prize)
        print("ret_list", ret_list)
        # user_prizes = json.dumps([prize.to_json() for prize in user.prizes])
        # user_prizes = json.dumps(ret_list)
        user_prizes = ret_list

        return JsonResponse({
            'code': 200,
            'data': {
                'user_prizes': user_prizes
            }
        })
コード例 #3
0
ファイル: views.py プロジェクト: peacefulyin/gh
def play(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        token = request_data.get('token', None)
        openid = request_data.get('openid', None)
        type = request_data.get('type', None)

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not token or not verify_auth_token(token_str, token):
            return JsonResponse({'code': 400})
        user = User.objects.get(openid=openid)
        if type == "normal":
            normal_game_count = user.remain_game.normal
            if normal_game_count[0] < 1:
                return JsonResponse({'code': 400})
            normal_game_count_after = [
                normal_game_count[0] - 1, normal_game_count[1]
            ]
            user.remain_game.normal = normal_game_count_after
            user.save()
            return JsonResponse({
                'code': 200,
                'remain_game': normal_game_count_after
            })
コード例 #4
0
 def wrapper(request,*args,**kwargs):
     request_data = json.loads(request.body)
     token = request_data.get('token', None)
     openid = request_data.get('openid', None)
     # 认证
     token_str = openid + str(red.hmget(openid,'postfix')[0],encoding='utf-8')
     if not verify_auth_token(token_str, token):
         return JsonResponse({'code': 400,'msg':'登陆过期,请重新登陆'})
     return func(request,*args,**kwargs)
コード例 #5
0
ファイル: views.py プロジェクト: peacefulyin/gh
def invitation(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        token = request_data.get('token', None)
        openid = request_data.get('openid', None)
        invitation_code = request_data.get('invitationCode', None)
        # type = request_data.get('type',None) 后期可加入type
        # 认证

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not invitation_code or not (verify_auth_token(token_str, token)):
            return JsonResponse({'code': 400})

        invitee = User.objects.get(openid=openid)
        if invitee.is_invited:
            return JsonResponse({'code': 400, 'msg': '您已经使用过邀请码。'})

        try:
            inviter = User.objects.get(invitation_code=invitation_code)
            if inviter.openid == openid:
                return JsonResponse({'code': 400, 'msg': '不能邀请你自己。'})
        except:
            return JsonResponse({'code': 400, 'msg': '邀请码无效。'})

        print('4')

        invitee.remain_game.normal = [
            invitee.remain_game.normal[0] + 1, invitee.remain_game.normal[1]
        ]
        inviter.remain_game.normal = [
            inviter.remain_game.normal[0] + 1, inviter.remain_game.normal[1]
        ]
        invitee.is_invited = True
        invitee.save()
        inviter.save()
        return JsonResponse({
            'code': 200,
            'data': {
                'points': invitee.points
            },
            'msg': '成功使用邀请码,您和您的朋友均获得增加一次游戏机会。'
        })
コード例 #6
0
ファイル: views.py プロジェクト: peacefulyin/gh
def start_lottery(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        openid = request_data.get('openid', None)
        token = request_data.get('token', None)
        print("datetime.datetime.now()", datetime.datetime.now())
        print("datetime.datetime.now()", datetime.datetime.now())
        # type = request_data.get('type',None) 后期可加入type
        # 认证

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not (verify_auth_token(token_str, token)):
            return JsonResponse({'code': 400})
        user = User.objects.get(openid=openid)
        if user.points < 10:
            return JsonResponse({'code': 400, 'msg': '积分不够'})
        user.points -= 10
        prize_index = random.randint(0, 5)  # 0-5
        if prize_index == 5:
            return JsonResponse({'code': 200, 'data': {'prize_id': None}})
        activate_prizes = Prize.objects.filter(activate=True)

        prize_obj = activate_prizes[prize_index]
        user_prize = UserPrize(prize=prize_obj,
                               id=str(uuid.uuid4()),
                               created_time=datetime.datetime.now())
        if "积分" in prize_obj.name:
            print("积分加了")
            user.points += int(prize_obj.name[:2])
            user_prize.delivery_state = 3
        print("user_prize create time ", user_prize.created_time)

        user.prizes.append(user_prize)
        user.save()
        return JsonResponse({
            'code': 200,
            'data': {
                'prize_id': str(prize_obj.id)
            }
        })
コード例 #7
0
ファイル: views.py プロジェクト: peacefulyin/gh
def finish_game(request):
    if request.method == 'POST':
        request_data = json.loads(request.body)
        token = request_data.get('token', None)
        openid = request_data.get('openid', None)
        score = request_data.get('score', None)

        token_str = openid + str(red.hmget(openid, 'postfix')[0],
                                 encoding='utf-8')

        if not token or not verify_auth_token(token_str, token):
            return JsonResponse({'code': 400})
        user = User.objects.get(openid=openid)
        if score >= 7:
            user.points += 10
        user.score += score
        user.save()
        return JsonResponse({
            'code': 200,
            'data': {
                'score': user.score,
                'points': user.points
            }
        })