Exemple #1
0
def main():
    trans_time = datetime.datetime(2015, 9, 16)
    old_expire_time = trans_time + relativedelta(months=3)

    user_vip_query = UserVip.objects.select_related(
        'user',
        'vip_role',
    ).filter(is_active=True, ).exclude(vip_role__code_name='experience_user', )

    for user_vip in user_vip_query:
        vip_role = user_vip.vip_role
        active_time = user_vip.active_time

        if active_time < trans_time:
            expire_time = old_expire_time
        else:
            expire_time = active_time + relativedelta(months=3)

        if active_time < trans_time and vip_role.code_name == 'self_a':
            price = 1

        elif active_time < trans_time and vip_role.code_name == 'self_b':
            price = 10
        else:
            price = vip_role.price

        user_vip.expire_time = expire_time
        user_vip.total_price = price
        user_vip.save()
        PackageUtils.update_uservip_package(user_vip)

        print 'trans user {0} vip type {1} success'.format(
            user_vip.user.username,
            vip_role.vip_name,
        )
Exemple #2
0
    def test_expire_uservip(self):
        uservip = UserVip.objects.get(user__username='******')
        PackageUtils.update_uservip_package(uservip)

        expire_time = uservip.expire_time
        user = uservip.user
        has_feed = user.feed_set.filter(expire_time=expire_time).exists()
        self.assertTrue(has_feed)
Exemple #3
0
    def test_expire_uservip(self):
        uservip = UserVip.objects.get(user__username='******')
        PackageUtils.update_uservip_package(uservip)

        expire_time = uservip.expire_time
        user = uservip.user
        has_feed = user.feed_set.filter(expire_time=expire_time).exists()
        self.assertTrue(has_feed)
Exemple #4
0
    def set_experience_user(cls, user):
        '''
        将用户设置成体验用户
        如果用户有正在使用的自助套餐,将正在使用的自助套餐失效,将用户设置成体验用户
        '''

        # 失效用户当前正在使用的套餐
        user_vip_query = UserVip.objects.select_related(
            'user',
            'vip_role',
        ).filter(
            user=user,
            is_active=True,
        ).exclude(
            vip_role__code_name='experience_user',
        )

        if user_vip_query:
            user_vip = user_vip_query[0]
            user_vip.custom_feed = 0
            user_vip.custom_point = 0
            user_vip.is_active = False
            user_vip.save()
            point_utils.deduction_self_point(user, user_vip)

        PackageUtils.expire_uservip_package(user)

        # 体验用户生效
        experience_vip_query = UserVip.objects.select_related(
            'user',
            'vip_role',
        ).filter(
            vip_role__code_name='experience_user',
            user=user,
        )
        if experience_vip_query:
            experience_vip = experience_vip_query[0]
        else:
            experience_service = VipRoleUtils.get_experience_vip()
            experience_vip = UserVip(
                user=user,
                vip_role=experience_service,
                apply_status='success',
            )

        experience_vip.is_active = True
        experience_vip.expire_time
        experience_vip.expire_time += relativedelta(
            months=3
        )
        experience_vip.custom_feed = 0
        experience_vip.custom_point = 0
        experience_vip.save()
        PackageUtils.set_uservip_pkg_feed(experience_vip)

        return experience_vip
Exemple #5
0
    def get(self, request):
        user = request.user
        now = datetime.datetime.now()
        charge_pkgs = UserChargePackage.objects.select_related(
            'resume_package',
        ).filter(
            user=user,
            package_type=1,
            pay_status='finished',
            resume_end_time__gt=now,
        ).order_by('-resume_end_time')

        user_feeds = UserChargePackage.objects.select_related(
            'feed_package',
        ).filter(
            user=user,
            package_type=2,
            pay_status='finished',
            extra_feed_num__gt=0,
            feed_end_time__gt=now,
        ).order_by('-id')

        has_pkg = UserChargePackage.objects.filter(
            user=user,
            package_type=1,
            pay_status='finished',
            resume_end_time__gt=now,
        )

        user_point = point_utils.get_user_pinbot_point(user)
        pinbot_point = point_utils._get_pinbot_point(user)
        current_vip = VipRoleUtils.get_current_vip(user)
        highest_vip_level = VipRoleUtils.get_highest_vip_level()
        unsign_vip = VipRoleUtils.get_unsign_vip(user)
        rest_feed_count = PackageUtils.rest_feed_count(user)
        coin_stat = coin_utils.get_coin_statistic(user)
        withdraw_data = json.dumps(
            WithdrawUtils.get_withdraw_status(user),
            ensure_ascii=False
        )
        is_partner = PartnerUtils.is_partner(user)

        return render(
            request,
            self.template,
            {
                'charge_pkgs': charge_pkgs,
                'user_feeds': user_feeds,
                'user_point': user_point,
                'pinbot_point': pinbot_point,
                'current_vip': current_vip,
                'highest_vip_level': highest_vip_level,
                'unsign_vip': unsign_vip,
                'rest_feed_count': rest_feed_count,
                'has_pkg': has_pkg,
                'coin_stat': coin_stat,
                'withdraw_data': withdraw_data,
                'is_partner': is_partner,
            },
        )
Exemple #6
0
 def dispatch(self, request, *args, **kwargs):
     user = request.user
     if not user.is_superuser and PackageUtils.has_base_pkg(user):
         return redirect(
             self.redirect_url
         )
     return super(VipUserRequiredMixin, self).dispatch(request, *args, **kwargs)
Exemple #7
0
    def renew(cls):
        today = get_today()
        expire_time = today + datetime.timedelta(days=15)

        user_vip_query = UserVip.objects.select_related('user', ).filter(
            is_active=True,
            vip_role__code_name='experience_user',
            expire_time__lt=expire_time,
        )

        for user_vip in user_vip_query:
            user_vip.expire_time += relativedelta(months=3)
            user_vip.save()
            PackageUtils.update_uservip_package(user_vip)

        return user_vip_query.count()
Exemple #8
0
    def renew(cls):
        today = get_today()
        expire_time = today + datetime.timedelta(days=15)

        user_vip_query = UserVip.objects.select_related(
            'user',
        ).filter(
            is_active=True,
            vip_role__code_name='experience_user',
            expire_time__lt=expire_time,
        )

        for user_vip in user_vip_query:
            user_vip.expire_time += relativedelta(
                months=3
            )
            user_vip.save()
            PackageUtils.update_uservip_package(user_vip)

        return user_vip_query.count()
def main():
    trans_time = datetime.datetime(2015, 9, 16)
    old_expire_time = trans_time + relativedelta(months=3)

    user_vip_query = UserVip.objects.select_related(
        'user',
        'vip_role',
    ).filter(
        is_active=True,
    ).exclude(
        vip_role__code_name='experience_user',
    )

    for user_vip in user_vip_query:
        vip_role = user_vip.vip_role
        active_time = user_vip.active_time

        if active_time < trans_time:
            expire_time = old_expire_time
        else:
            expire_time = active_time + relativedelta(months=3)

        if active_time < trans_time and vip_role.code_name == 'self_a':
            price = 1

        elif active_time < trans_time and vip_role.code_name == 'self_b':
            price = 10
        else:
            price = vip_role.price

        user_vip.expire_time = expire_time
        user_vip.total_price = price
        user_vip.save()
        PackageUtils.update_uservip_package(user_vip)

        print 'trans user {0} vip type {1} success'.format(
            user_vip.user.username,
            vip_role.vip_name,
        )
Exemple #10
0
    def update_vip_pkg(self, user_vip, admin=False):
        vip_role = user_vip.vip_role
        user = user_vip.user

        vip_feed_pkg = PackageUtils.get_vip_feed_pkg(user)
        if user_vip.vip_role.auto_active or admin:
            feed_count = vip_role.feed_count if not user_vip.custom_feed else user_vip.custom_feed
            add_count = feed_count - vip_feed_pkg.extra_feed_num
            if add_count > 0:
                vip_feed_pkg.rest_feed += add_count
                vip_feed_pkg.extra_feed_num += add_count
            vip_feed_pkg.pay_status = 'finished'
            vip_feed_pkg.feed_end_time = user_vip.expire_time
        vip_feed_pkg.save()

        return vip_feed_pkg
Exemple #11
0
    def update_vip_pkg(self, user_vip, admin=False):
        vip_role = user_vip.vip_role
        user = user_vip.user

        vip_feed_pkg = PackageUtils.get_vip_feed_pkg(user)
        if user_vip.vip_role.auto_active or admin:
            feed_count = vip_role.feed_count if not user_vip.custom_feed else user_vip.custom_feed
            add_count = feed_count - vip_feed_pkg.extra_feed_num
            if add_count > 0:
                vip_feed_pkg.rest_feed += add_count
                vip_feed_pkg.extra_feed_num += add_count
            vip_feed_pkg.pay_status = 'finished'
            vip_feed_pkg.feed_end_time = user_vip.expire_time
        vip_feed_pkg.save()

        return vip_feed_pkg
Exemple #12
0
 def dispatch(self, request, *args, **kwargs):
     user = request.user
     if not user.is_superuser and PackageUtils.has_base_pkg(user):
         return redirect(self.redirect_url)
     return super(VipUserRequiredMixin,
                  self).dispatch(request, *args, **kwargs)
def add_card_pkg():
    company_list = [
        520,
        519,
        518,
        517,
        512,
        515,
        514,
        513,
        511,
        510,
        509,
        505,
        503,
        219,
        502,
        501,
        390,
        499,
        498,
        496,
        45,
        343,
        495,
        483,
        494,
        363,
        258,
        270,
        493,
        492,
        400,
        490,
        115,
        489,
        488,
        312,
        47,
        487,
        486,
        485,
        484,
        482,
        481,
        480,
        479,
        95,
        5,
        478,
        427,
        26,
        307,
        96,
        67,
        477,
        476,
        475,
        474,
        473,
        472,
        471,
        470,
        469,
        468,
        467,
        466,
        465,
        464,
        463,
        462,
        461,
        460,
        459,
        458,
        457,
        456,
        455,
        454,
        453,
        452,
        451,
        450,
        449,
        448,
        447,
        446,
        445,
        444,
        443,
        442,
        441,
        440,
        439,
        438,
        437,
        436,
        435,
        434,
        433,
        432,
        431,
        430,
        429,
        167,
        428,
        426,
        342,
        424,
        423,
        422,
        421,
        419,
        418,
        417,
        416,
        403,
        415,
        414,
        413,
        412,
        411,
        410,
        409,
        408,
        407,
        406,
        405,
        404,
        340,
        402,
        401,
        399,
        398,
        397,
        396,
        395,
        394,
        393,
        392,
        391,
        389,
        388,
        387,
        386,
        385,
        384,
        383,
        382,
        381,
        380,
        379,
        378,
        377,
        267,
        287,
        289,
        376,
        375,
        374,
        373,
        372,
        371,
        370,
        369,
        367,
        366,
        365,
        364,
        362,
        361,
        360,
        359,
        358,
        357,
        356,
        354,
        355,
        352,
        351,
        350,
        349,
        348,
        347,
        346,
        345,
        344,
        341,
        339,
        338,
        141,
        337,
        336,
        335,
        334,
        333,
        332,
        331,
        330,
        329,
        328,
        327,
        326,
        322,
        325,
        324,
        323,
        321,
        320,
        319,
        264,
        318,
        317,
        316,
        315,
        314,
        313,
        310,
        309,
        308,
        306,
        305,
        304,
        303,
        302,
        301,
        300,
        299,
        298,
        297,
        296,
        295,
        294,
        293,
        57,
        292,
        291,
        290,
        288,
        286,
        285,
        284,
        283,
        282,
        281,
        280,
        279,
        278,
        277,
        276,
        275,
        274,
        273,
        272,
        66,
        271,
        269,
        268,
        266,
        265,
        253,
        263,
        262,
        261,
        260,
        87,
        259,
        257,
        256,
        255,
        254,
        252,
        251,
        250,
        249,
        248,
        247,
        246,
        245,
        244,
        243,
        241,
        242,
        240,
        239,
        238,
        237,
        236,
        68,
        234,
        233,
        232,
        231,
        230,
        229,
        228,
        227,
        226,
        225,
        224,
        223,
        222,
        221,
        220,
        218,
        217,
        192,
        216,
        140,
        215,
        214,
        213,
        212,
        211,
        210,
        209,
        208,
        207,
        206,
        1,
        203,
        202,
        201,
        200,
        199,
        198,
        197,
        196,
        195,
        194,
        193,
        191,
        190,
        189,
        188,
        187,
        186,
        185,
        184,
        183,
        182,
        181,
        180,
        179,
        178,
        139,
        177,
        176,
        175,
        174,
        173,
        171,
        107,
        170,
        169,
        168,
        166,
        164,
        163,
        162,
        161,
        160,
        159,
        7,
        158,
        157,
        156,
        155,
        153,
        13,
        152,
        151,
        150,
        149,
        148,
        147,
        146,
        145,
        144,
        143,
        142,
        138,
        137,
        136,
        135,
        134,
        133,
        132,
        131,
        128,
        130,
        129,
        127,
        126,
        125,
        105,
        124,
        123,
        122,
        121,
        120,
        119,
        118,
        117,
        116,
        114,
        113,
        112,
        111,
        110,
        109,
        108,
        106,
        91,
        104,
        103,
        102,
        101,
        100,
        99,
        98,
        97,
        94,
        2,
        93,
        92,
        90,
        89,
        88,
        86,
        85,
        84,
        83,
        82,
        81,
        80,
        14,
        79,
        78,
        77,
        75,
        74,
        73,
        72,
        71,
        70,
        69,
        27,
        65,
        64,
        63,
        62,
        59,
        61,
        60,
        58,
        56,
        55,
        54,
        53,
        52,
        51,
        50,
        48,
        49,
        46,
        44,
        43,
        42,
        30,
        41,
        40,
        39,
        38,
        37,
        36,
        35,
        34,
        33,
        32,
        31,
        29,
        28,
        25,
        23,
        22,
        21,
        20,
        19,
        18,
        17,
        16,
        15,
        11,
        12,
        10,
        9,
        8,
        6,
        4,
        3,
    ]

    for company_id in company_list:
        company = get_object_or_none(
            Company,
            id=company_id,
        )
        if not company:
            print 'company id %s not found in pinbot' % company_id
            continue
        user = company.user
        with transaction.atomic():
            point_utils.add_card_point(user)
            PackageUtils.add_feed(user, FEED_SERVICE_NAME)
        print 'company id %s add company card package success' % company_id
def add_card_pkg():
    company_list = [
        520,
        519,
        518,
        517,
        512,
        515,
        514,
        513,
        511,
        510,
        509,
        505,
        503,
        219,
        502,
        501,
        390,
        499,
        498,
        496,
        45,
        343,
        495,
        483,
        494,
        363,
        258,
        270,
        493,
        492,
        400,
        490,
        115,
        489,
        488,
        312,
        47,
        487,
        486,
        485,
        484,
        482,
        481,
        480,
        479,
        95,
        5,
        478,
        427,
        26,
        307,
        96,
        67,
        477,
        476,
        475,
        474,
        473,
        472,
        471,
        470,
        469,
        468,
        467,
        466,
        465,
        464,
        463,
        462,
        461,
        460,
        459,
        458,
        457,
        456,
        455,
        454,
        453,
        452,
        451,
        450,
        449,
        448,
        447,
        446,
        445,
        444,
        443,
        442,
        441,
        440,
        439,
        438,
        437,
        436,
        435,
        434,
        433,
        432,
        431,
        430,
        429,
        167,
        428,
        426,
        342,
        424,
        423,
        422,
        421,
        419,
        418,
        417,
        416,
        403,
        415,
        414,
        413,
        412,
        411,
        410,
        409,
        408,
        407,
        406,
        405,
        404,
        340,
        402,
        401,
        399,
        398,
        397,
        396,
        395,
        394,
        393,
        392,
        391,
        389,
        388,
        387,
        386,
        385,
        384,
        383,
        382,
        381,
        380,
        379,
        378,
        377,
        267,
        287,
        289,
        376,
        375,
        374,
        373,
        372,
        371,
        370,
        369,
        367,
        366,
        365,
        364,
        362,
        361,
        360,
        359,
        358,
        357,
        356,
        354,
        355,
        352,
        351,
        350,
        349,
        348,
        347,
        346,
        345,
        344,
        341,
        339,
        338,
        141,
        337,
        336,
        335,
        334,
        333,
        332,
        331,
        330,
        329,
        328,
        327,
        326,
        322,
        325,
        324,
        323,
        321,
        320,
        319,
        264,
        318,
        317,
        316,
        315,
        314,
        313,
        310,
        309,
        308,
        306,
        305,
        304,
        303,
        302,
        301,
        300,
        299,
        298,
        297,
        296,
        295,
        294,
        293,
        57,
        292,
        291,
        290,
        288,
        286,
        285,
        284,
        283,
        282,
        281,
        280,
        279,
        278,
        277,
        276,
        275,
        274,
        273,
        272,
        66,
        271,
        269,
        268,
        266,
        265,
        253,
        263,
        262,
        261,
        260,
        87,
        259,
        257,
        256,
        255,
        254,
        252,
        251,
        250,
        249,
        248,
        247,
        246,
        245,
        244,
        243,
        241,
        242,
        240,
        239,
        238,
        237,
        236,
        68,
        234,
        233,
        232,
        231,
        230,
        229,
        228,
        227,
        226,
        225,
        224,
        223,
        222,
        221,
        220,
        218,
        217,
        192,
        216,
        140,
        215,
        214,
        213,
        212,
        211,
        210,
        209,
        208,
        207,
        206,
        1,
        203,
        202,
        201,
        200,
        199,
        198,
        197,
        196,
        195,
        194,
        193,
        191,
        190,
        189,
        188,
        187,
        186,
        185,
        184,
        183,
        182,
        181,
        180,
        179,
        178,
        139,
        177,
        176,
        175,
        174,
        173,
        171,
        107,
        170,
        169,
        168,
        166,
        164,
        163,
        162,
        161,
        160,
        159,
        7,
        158,
        157,
        156,
        155,
        153,
        13,
        152,
        151,
        150,
        149,
        148,
        147,
        146,
        145,
        144,
        143,
        142,
        138,
        137,
        136,
        135,
        134,
        133,
        132,
        131,
        128,
        130,
        129,
        127,
        126,
        125,
        105,
        124,
        123,
        122,
        121,
        120,
        119,
        118,
        117,
        116,
        114,
        113,
        112,
        111,
        110,
        109,
        108,
        106,
        91,
        104,
        103,
        102,
        101,
        100,
        99,
        98,
        97,
        94,
        2,
        93,
        92,
        90,
        89,
        88,
        86,
        85,
        84,
        83,
        82,
        81,
        80,
        14,
        79,
        78,
        77,
        75,
        74,
        73,
        72,
        71,
        70,
        69,
        27,
        65,
        64,
        63,
        62,
        59,
        61,
        60,
        58,
        56,
        55,
        54,
        53,
        52,
        51,
        50,
        48,
        49,
        46,
        44,
        43,
        42,
        30,
        41,
        40,
        39,
        38,
        37,
        36,
        35,
        34,
        33,
        32,
        31,
        29,
        28,
        25,
        23,
        22,
        21,
        20,
        19,
        18,
        17,
        16,
        15,
        11,
        12,
        10,
        9,
        8,
        6,
        4,
        3,
    ]

    for company_id in company_list:
        company = get_object_or_none(
            Company,
            id=company_id,
        )
        if not company:
            print 'company id %s not found in pinbot' % company_id
            continue
        user = company.user
        with transaction.atomic():
            point_utils.add_card_point(user)
            PackageUtils.add_feed(user, FEED_SERVICE_NAME)
        print 'company id %s add company card package success' % company_id
 def active_service(self):
     self.renew_user_vip()
     PackageUtils.update_uservip_package(self.user_vip)
     return self.service
 def active_service(self):
     self.renew_user_vip()
     PackageUtils.update_uservip_package(self.user_vip)
     return self.service