コード例 #1
0
def test_test(request):

    data = {"data": request.POST}
    data = json.loads(request.body)
    print(type(data.get("c")))
    #print(json.loads(request.POST.get("is_host")))
    return json_success_response(json_data=data)
コード例 #2
0
def give_admin(request):
    """
        打赏
    :param request:
    :return:
    """

    data = request.POST

    user_id = data.get("user_id")

    money = abs(float(data.get("money", 10)))

    if money < 10:
        money = 10
    elif money > 500:
        money = 500

    give = ForAdmin(user_id=user_id, money=money)
    give.save()

    user = User.objects.get(id=user_id)
    user.money -= money
    user.save()

    logger.info("user:%s give for quning money:%s" % (user_id, money))
    return json_success_response(json_data={})
コード例 #3
0
def login(request):
    """
        登录
    :param request:
    :return:
    """

    # token = request.META.get("HTTP_TOKEN")
    # if not token or token != LOGIN_TOKEN:
    #     return json_success_response(msg="未授权用户")

    data = request.POST
    username = data.get("username")
    password = data.get("password")
    try:
        employee, errmsg = ucenter.employee_login(username, password)
        if not employee:
            msg = u"用户名或者密码错误"
            logger.error(
                "login error.error username:%s password:%s error message:%s" %
                (username, password, errmsg))
            return json_forbidden_response(msg=msg, json_data={})
        else:
            user = User.update_cds_employee(employee)
            return json_success_response(json_data={"user_id": user.id})
    except Exception as e:
        logger.info("login ucenter catch error%s" % traceback.format_exc())
        msg = u"login when catch error"
        return json_error_response(msg=msg, json_data={})
コード例 #4
0
ファイル: views.py プロジェクト: mygoda/school
    def get(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        obj = model_service.get_obj(**kwargs)
        has_permissions = self.has_get_permissions(request, obj, *args, **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有读取权限")

        json_data = {model_service.obj_name: model_service.obj_to_json(obj)}
        return json_success_response(json_data=json_data)
コード例 #5
0
ファイル: views.py プロジェクト: mygoda/school
    def post(self, request, *args, **kwargs):
        content = request.POST.get('content', '')
        teacher_id = Teacher.objects.get(user_id=request.user.id).id
        student = request.POST.get('student', '')

        evaluation = StudentEvaluation(student_id=student, content=content, teacher_id=teacher_id)
        evaluation.save()

        return json_success_response(json_data={})
コード例 #6
0
def gold_list(request):
    """
        押注冠军数组
    """

    golds = GoldGame.objects.all()
    game_list_json = [gold.to_json() for gold in golds]
    logger.info("this game is %s" % game_list_json)
    return json_success_response(json_data=game_list_json)
コード例 #7
0
def test(request):
    user = request.user
    data = {}
    if user:
        data["a"] = "abc"
    else:
        data["a"] = "11111"

    return json_success_response(json_data=data)
コード例 #8
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def get(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        obj = model_service.get_obj(**kwargs)
        has_permissions = self.has_get_permissions(request, obj, *args,
                                                   **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有读取权限")

        json_data = {model_service.obj_name: model_service.obj_to_json(obj)}
        return json_success_response(json_data=json_data)
コード例 #9
0
def for_admin_list(request):
    """
        打赏榜
    :param request:
    :return:
    """

    for_admins = ForAdmin.objects.all().order_by("-money")
    admin_json = [admin.to_json() for admin in for_admins]
    return json_success_response(json_data=admin_json)
コード例 #10
0
def user_add_json(request):
    """
        获取game的相关信息
    :param request:
    :return:
    """
    game_id = request.GET.get("game_id", "")
    game = Game.objects.get(id=game_id)
    data = game.obj_to_json()
    return json_success_response(json_data=data)
コード例 #11
0
ファイル: views.py プロジェクト: mygoda/school
    def delete(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        obj = model_service.get_obj(**kwargs)
        has_permissions = self.has_delete_permissions(request, obj, *args, **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有操作权限")

        obj.delete()
        logger.info("delete model %s, model_id %s" % (obj.__class__.__name__, obj.id))
        return json_success_response(json_data={})
コード例 #12
0
ファイル: term.py プロジェクト: mygoda/school
 def post(self, request, *args, **kwargs):
     data = json.loads(request.body)
     print(data)
     teacher = data.get('teacher', '')
     term = self.create_term(data=data, teacher=teacher)
     self.create_term_teacher_ship(teacher=teacher, term=term)
     context = {
         "school_class": data.get('school_class', ''),
         "term": term.id
     }
     return json_success_response(json_data=context)
コード例 #13
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def delete(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        obj = model_service.get_obj(**kwargs)
        has_permissions = self.has_delete_permissions(request, obj, *args,
                                                      **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有操作权限")

        obj.delete()
        logger.info("delete model %s, model_id %s" %
                    (obj.__class__.__name__, obj.id))
        return json_success_response(json_data={})
コード例 #14
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def post(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        paras = json.loads(request.body)
        paras['request'] = request
        has_permissions = self.has_post_permissions(request, paras, *args,
                                                    **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有新建权限")

        obj = model_service.create(**paras)
        json_data = {model_service.obj_name: model_service.obj_to_json(obj)}
        return json_success_response(json_data=json_data)
コード例 #15
0
def games_api_list(request):
    """
        返回可以下注的
    :param request:
    :return:
    """
    games = Game.objects.filter(user_can_odd=True)
    games_list = []
    for game in games:
        if game.games_to_json():
            games_list.append(game.games_to_json())
    return json_success_response(json_data={"games": games_list})
コード例 #16
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def get(self, requests, *args, **kwargs):
        params = requests.GET.dict()
        bucket_dict = settings.UPYUN_BUCKET_DICT
        bucket = params.get("bucket", "")
        form_secret_key = bucket_dict.get(bucket, "")
        json_string = json.dumps(params)

        policy = base64.b64encode(json_string)
        signature = md5(policy + "&" + form_secret_key)
        return json_success_response({
            "signature": signature,
            "policy": policy,
        })
コード例 #17
0
ファイル: views.py プロジェクト: mygoda/school
    def post(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        paras = json.loads(request.body)
        paras['request'] = request
        has_permissions = self.has_post_permissions(request, paras, *args, **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有新建权限")

        obj = model_service.create(**paras)
        json_data = {
            model_service.obj_name: model_service.obj_to_json(obj)
        }
        return json_success_response(json_data=json_data)
コード例 #18
0
ファイル: views.py プロジェクト: mygoda/school
    def get(self, requests, *args, **kwargs):
        params = requests.GET.dict()
        bucket_dict = settings.UPYUN_BUCKET_DICT
        bucket = params.get("bucket", "")
        form_secret_key = bucket_dict.get(bucket, "")
        json_string = json.dumps(params)

        policy = base64.b64encode(json_string)
        signature = md5(policy + "&" + form_secret_key)
        return json_success_response({
            "signature": signature,
            "policy": policy,
        })
コード例 #19
0
ファイル: views.py プロジェクト: mygoda/school
    def put(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        put_dict = json.loads(request.body)
        put_dict['request'] = request
        put_dict.update(kwargs)

        has_permissions = self.has_put_permissions(request, put_dict, *args, **kwargs)
        if not has_permissions:
            return json_error_response(json_data={}, msg=u"您没有访问权限")

        obj = model_service.update(**put_dict)
        json_data = {model_service.obj_name: model_service.obj_to_json(obj)}
        return json_success_response(json_data=json_data)
コード例 #20
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def put(self, request, *args, **kwargs):
        model_service = self.get_model_service()
        put_dict = json.loads(request.body)
        put_dict['request'] = request
        put_dict.update(kwargs)

        has_permissions = self.has_put_permissions(request, put_dict, *args,
                                                   **kwargs)
        if not has_permissions:
            return json_error_response(json_data={}, msg=u"您没有访问权限")

        obj = model_service.update(**put_dict)
        json_data = {model_service.obj_name: model_service.obj_to_json(obj)}
        return json_success_response(json_data=json_data)
コード例 #21
0
def game_list(request, tmp_name=""):
    """
        查看比赛列表
    :param request:
    :param tmp_name:
    :return:
    """

    games = Game.objects.filter(success="unstart")
    game_jsons = []
    for game in games:
        game_jsons.append(game.to_json())

    data = {"games": games}

    return json_success_response(json_data=data)
コード例 #22
0
ファイル: views.py プロジェクト: mygoda/school
    def get(self, request, *args, **kwargs):
        params = self.get_params(request, *args, **kwargs)
        page = params.pop("page", "")
        model_service = self.get_model_service(**params)
        pages = model_service.get_total_pages()

        has_permissions = self.has_get_queryset_permissions(request, params, *args, **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有接口权限")

        current_page = self.get_current_page(page, pages)
        queryset = model_service.get_queryset(page=current_page)
        queryset_json = self.queryset_to_dict(request, model_service, queryset, *args, **kwargs)
        json_data = {
            model_service.queryset_name: queryset_json,
            "current_page": current_page,
            "pages": pages,
            "total_count": model_service.get_total_count(),
        }
        return json_success_response(json_data=json_data)
コード例 #23
0
def add_gold(request):

    data = request.POST

    money = data.get("money")

    money = abs(float(money))

    user_id = data.get("user_id")

    gold_id = data.get("gold_id")

    if not user_id:
        return json_error_response(json_data={}, msg="下注失败,未登录")

    all_money = sum(
        list(
            ChampionModel.objects.filter(user_id=user_id).values_list(
                "money", flat=True))) + money

    if all_money > 2000:
        return json_error_response(json_data={}, msg="超过下注金额,无法下注")

    gold = GoldGame.objects.get(id=gold_id)

    if not gold.can_add:
        return json_error_response(json_data={}, msg="超过下注时间,无法下注")

    c_model = ChampionModel(user_id=user_id,
                            gold_game_id=gold_id,
                            money=money,
                            user_choice_team=gold.team_id,
                            win_odd=gold.win_odd)

    c_model.save()

    user = User.objects.get(id=user_id)
    user.money -= money
    user.save()

    return json_success_response(json_data={})
コード例 #24
0
ファイル: teacher.py プロジェクト: mygoda/school
    def post(self, request, *args, **kwargs):
        body = json.loads(request.body)
        phone = body.get('phone', '')
        password = body.get('password', '')
        passed = UserPassword.check_password(password, phone)
        print('yes')
        if not passed:
            return json_error_response(msg=u'密码错误')

        user = User.get_user_by_phone(phone)

        if not user:
            return json_error_response(msg=u'没有该用户')

        if not Teacher.objects.filter(user_id=user.id).exists():
            return json_error_response(msg=u"对不起,你不是老师!")

        user = authenticate(phone=phone)
        print(user)
        login(request, user)

        return json_success_response(json_data={})
コード例 #25
0
ファイル: views.py プロジェクト: mygoda/new_ball
    def get(self, request, *args, **kwargs):
        params = self.get_params(request, *args, **kwargs)
        page = params.pop("page", "")
        model_service = self.get_model_service(**params)
        pages = model_service.get_total_pages()

        has_permissions = self.has_get_queryset_permissions(
            request, params, *args, **kwargs)
        if not has_permissions:
            return json_forbidden_response(json_data={}, msg=u"您没有接口权限")

        current_page = self.get_current_page(page, pages)
        queryset = model_service.get_queryset(page=current_page)
        queryset_json = self.queryset_to_dict(request, model_service, queryset,
                                              *args, **kwargs)
        json_data = {
            model_service.queryset_name: queryset_json,
            "current_page": current_page,
            "pages": pages,
            "total_count": model_service.get_total_count(),
        }
        return json_success_response(json_data=json_data)
コード例 #26
0
ファイル: term.py プロジェクト: mygoda/school
 def post(self, request, *args, **kwargs):
     body = json.loads(request.body)
     data = body.get('data', '')
     data = sorted(data, key=lambda x: x['grades'], reverse=True)
     term = body.get('term', '')
     position = 1
     max_grade = int(data[0].get('grades', ''))
     pass_number = 0
     excellent_number = 0
     sum = 0
     for item in data:
         point = int(item.get('grades', ''))
         grade = StudentGrade(student_id=item.get('id', ''), term_id=term, grade=point, position=position)
         grade.save()
         if point > 60:
             pass_number += 1
         elif point > 90:
             excellent_number += 1
         sum += point
         position += 1
     average = sum/len(data)
     self.statictics(sum=sum, pass_number=pass_number, max=max_grade, excellent_number=excellent_number, term=term, average=average)
     return json_success_response(json_data={"term": term})
コード例 #27
0
ファイル: views.py プロジェクト: mygoda/school
 def delete(self, request, *args, **kwargs):
     model_service = self.get_model_service()
     delete_dict = json.loads(request.body)
     ids = delete_dict['ids'].split(",")
     model_service.bulk_delete(ids=ids)
     return json_success_response(json_data={})
コード例 #28
0
ファイル: views.py プロジェクト: mygoda/new_ball
 def delete(self, request, *args, **kwargs):
     model_service = self.get_model_service()
     delete_dict = json.loads(request.body)
     ids = delete_dict['ids'].split(",")
     model_service.bulk_delete(ids=ids)
     return json_success_response(json_data={})
コード例 #29
0
def user_odd(request):
    """
        查看用户自己的下注情况, 超级用户可以看到所有的统计情况
    :param request:
    :return:
    """
    data = request.GET
    user_id = data.get("user_id")
    user = User.objects.get(id=user_id)
    filter_type = data.get(
        "filter_type", "all")  # just for all: 所有  checked: 已经结算 unchecked: 未结算
    user_games = UserGameShip.objects.filter(user_id=user.id)
    user_games_list = []
    if filter_type == "all":
        user_games_list_tmp = [user_game.to_json() for user_game in user_games]
        c_game_list = ChampionModel.objects.filter(user_id=user_id)
        for c in c_game_list:
            user_games_list_tmp.append(c.to_json())
        user_games_list = user_games_list_tmp
    elif filter_type == "checked":
        for user_game in user_games:
            if user_game.is_check:
                user_games_list.append(user_game.to_json())
        c_game_list = ChampionModel.objects.filter(user_id=user_id,
                                                   is_checked=True)
        for c in c_game_list:
            user_games_list.append(c.to_json())
    else:
        for user_game in user_games:
            if not user_game.is_check:
                user_games_list.append(user_game.to_json())
            c_game_list = ChampionModel.objects.filter(user_id=user_id,
                                                       is_checked=False)
            for c in c_game_list:
                user_games_list.append(c.to_json())

    all_money = 0

    game_stats_list = []
    is_quning = False
    if user.is_superuser:
        game_stats = GameStat.objects.all().order_by("-id")
        for game_stat in game_stats:
            game_stats_list.append(game_stat.to_json())

    if user.username == "ning.qu":
        # 庄家信息
        is_quning = True
        users_money = list(User.objects.all().values_list("money", flat=True))
        for user_money in users_money:
            if user_money < 0:
                all_money += abs(user_money)
            elif user_money > 0:
                all_money -= abs(user_money)

    data = {
        "games": user_games_list,
        "stats": game_stats_list,
        "is_super": "yes" if user.is_superuser else "no",
        "username": user.username,
        "money": user.money,
    }

    return json_success_response(json_data=data)
コード例 #30
0
def bet(request):
    """
        下注
    :return:
    """
    try:
        data = request.POST
        game_id = data.get("game_id")
        money = abs(float(data.get("money", 5)))
        if money < 5:
            money = 5
        elif money > 500:
            money = 500
        user_id = data.get("user_id", 1)
        user = User.objects.get(id=user_id)
        user_choice = int(data.get("is_host", 0))  # 0: 战平 1: 主队, 2 客队
        game = Game.objects.get(id=game_id)
        team_id = 0
        if user_choice == 1:
            team_id = game.host_team_id
        else:
            team_id = game.other_team_id

        if not game.can_add or not game.user_can_odd:
            # 无法下注的情况, 比赛已经开始, 不能下注
            return json_forbidden_response(json_data={}, msg="time_over")

        if not UserGameShip.can_start_bet(
                user_id=user_id, game_id=game_id, money=money,
                team_id=team_id):
            logger.info("user:%s can not bet that bet is more than 500 in %s" %
                        (user_id, game_id))
            return json_forbidden_response(json_data={}, msg="can not bet")

        game_stat_exists = GameStat.objects.filter(game_id=game_id).exists()
        if not game_stat_exists:
            # 不存在
            game_stat = GameStat(game_id=game_id,
                                 host_win_add=game.host_win,
                                 other_win_add=game.other_win,
                                 equal_win_add=game.equal)
        else:
            game_stat = GameStat.objects.filter(game_id=game_id)[0]
            game_stat.host_win_add = game.host_win
            game.other_win_add = game.other_win
            game.equal_win_add = game.equal

        # game.success = u"win"
        user_choice_team_id = None
        if user_choice == 0:
            # 战平
            # game.success = "equal"
            win_add = game.equal
            game_stat.equal_win_people += 1
            game_stat.equal_win_money += money
        elif user_choice == 1:
            # 主队获胜
            win_add = game.host_win
            game.win_id = game.host_team.id
            user_choice_team_id = game.host_team.id
            game_stat.host_win_people += 1
            game_stat.host_win_money += money
        else:
            # 客队获胜
            win_add = game.other_win
            game.win_id = game.other_team.id
            user_choice_team_id = game.other_team.id
            game_stat.other_win_people += 1
            game_stat.other_win_money += money
        game_stat.save()
        logger.info(u"用户%s 在 比赛%s 中压%s元, %s胜利!" %
                    (user.username, game_id, money, user_choice))

        user.money -= int(money)
        user.save()
        logger.info("用户%s 扣去 %s元" % (user.username, money))

        logger.info("start add user game ship")
        if user_choice_team_id:
            user_game_ship = UserGameShip(user=user,
                                          game_id=game_id,
                                          money=money,
                                          user_choice_team=user_choice_team_id,
                                          win_odd=win_add,
                                          extra_goal=game.extra_goal)
        else:
            user_game_ship = UserGameShip(user=user,
                                          game_id=game_id,
                                          money=money,
                                          win_odd=win_add,
                                          extra_goal=game.extra_goal)

        user_game_ship.save()
        return json_success_response(json_data={})
    except Exception as e:
        logger.info("user:%s add %s money is team:%s in game:%s" %
                    (user_id, money, user_choice, game_id))
        logger.info("do it catch exception:%s" % str(e))
        return json_error_response(json_data={}, msg="error")
コード例 #31
0
def admin_stat(request):
    """
        ning.qu 独享
    :param request:
    :return:
    """
    # qu.ning 独享

    c_sum = 0  # 冠军投注收益

    c_sum = sum(
        list(ChampionModel.objects.all().values_list("money", flat=True)))

    users_ship = UserGameShip.objects.all()

    user_all_money = sum(list(users_ship.values_list("money",
                                                     flat=True)))  # 总下注额度

    game_count = Game.objects.all().count()

    users_ship_count = users_ship.count()  # 下注数量

    user_count = len(set(users_ship.values_list("user_id",
                                                flat=True)))  # 下注的人数

    users = User.objects.all().order_by("-money")

    max_user = users.first()  # 赢钱最多

    min_user = users.last()  # 输钱最多

    water_sum, all_my_sum = GameStat.all_my_water_sum()

    max_win, min_win = GameStat.max_min_win()

    max_win_money = max_win.all_my

    max_win_game = max_win.game.game_name

    min_win_money = min_win.all_my

    min_win_game = min_win.game.game_name

    all_admins = ForAdmin.objects.all()

    give_sum = sum(list(all_admins.values_list("money", flat=True)))

    give_people_count = all_admins.count()

    max_user_info = "%s 收益: %s" % (max_user.username, max_user.money)

    min_user_info = "%s 收益: %s" % (min_user.username, min_user.money)

    max_game_win = "%s 收益: %s" % (max_win_game, max_win_money)

    min_game_win = "%s 收益: %s" % (min_win_game, min_win_money)

    super_win = all_my_sum - water_sum + give_sum

    return_data = {
        "user_all_money": user_all_money,
        "users_ship_count": users_ship_count,
        "user_count": user_count,
        "max_user_info": max_user_info,
        "min_user_info": min_user_info,
        "max_game_win": max_game_win,
        "min_game_win": min_game_win,
        "give_sum": give_sum,
        "give_people_count": give_people_count,
        "game_count": game_count,
        "water_sum": water_sum,
        "all_my_sum": round(all_my_sum, 2),
        "super_win": round(super_win),
        "c_sum": c_sum,
    }

    return json_success_response(json_data=return_data)
コード例 #32
0
def user_stat(request):
    """
        用户的统计信息, 庄家显示
    :param request:
    :return:
    """
    data = request.GET

    user_id = int(data.get("user_id"))
    if user_id != 23:

        show_name = True
        c_sum = sum(
            list(
                ChampionModel.objects.filter(user_id=user_id).values_list(
                    "money", flat=True)))
        users = User.objects.all().order_by("-money")
        order_ids = list(users.values_list("id", flat=True))

        user_index = order_ids.index(user_id)  # 排名 需要加一

        user = users.get(id=user_id)  # 此用户

        previous_user_info = "没有人比你更爽"

        if user_index != 0:
            previous_index = user_index - 1

            previous_user = users[previous_index]

            previous_user_info = previous_user.username

        next_user_info = "没有人比你更惨"

        if user_index != len(order_ids) - 1:
            next_index = user_index + 1

            next_user = users[next_index]

            next_user_info = next_user.username

        max_user = users.first()

        min_user = users.last()

        all_game_ship = UserGameShip.objects.filter(user_id=user_id)

        game_ship_count = len(
            set(all_game_ship.values_list("game_id", flat=True)))

        game_sum = sum(list(all_game_ship.values_list("money", flat=True)))

        gives = ForAdmin.objects.filter(user_id=user_id)

        gives_sum = sum(list(gives.values_list("money", flat=True)))

        return_data = {
            "username": user.username,
            "user_index": user_index + 1,
            "previous_user": previous_user_info if show_name else "*****",
            "next_user": next_user_info if show_name else "*****",
            "max_user_name": max_user.username if show_name else "*****",
            "min_user_name": min_user.username if show_name else "*****",
            "my_money": user.money,
            "game_count": game_ship_count,
            "game_money": game_sum,
            "give_sum": gives_sum,
            "c_sum": c_sum,
        }
        return json_success_response(json_data=return_data)