Exemplo n.º 1
0
def login_jifen(request, date=None):
    """
    连续登陆 产生积分 mysql
    by:尚宗凯 at:2015-3-7
    优化 settings 的配置
    by:王健 at:2015-3-9
    积分暂停开发
    by:王健 at:2015-06-29
    :param request:
    :param date:
    :return:
    """
    return False, 0, u''
    uid = request.user.pk
    if not date:
        date = timezone.now()
    jifen_id = LOGIN_JIFEN % (uid, date.strftime('%Y%m%d'))
    if not hasattr(request.session, jifen_id):
        if not hasattr(request.session, LOGINLIST_KEY):
            request.session[LOGINLIST_KEY] = []
        if jifen_id not in request.session[LOGINLIST_KEY]:
            request.session[LOGINLIST_KEY].append(jifen_id)
        try:
            login_data = NSJiFen.objects.get(id=jifen_id)
            if login_data:
                request.session[jifen_id] = jifen_id
        except NSJiFen.DoesNotExist:
            pre_date = date + datetime.timedelta(days=-1)
            pre_jifen_id = LOGIN_JIFEN % (uid, pre_date.strftime('%Y%m%d'))
            try:
                pre_login_data = NSJiFen.objects.get(id=pre_jifen_id)
                days = pre_login_data.toJSON().get('days', 0) + 1
                if days > settings.LOGIN_MAX_DAYS:
                    fen = settings.LOGIN_MAX_DAYS * settings.LOGIN_MAX_DAYS_FEN
                else:
                    fen = days * settings.LOGIN_MAX_DAYS_FEN
            except NSJiFen.DoesNotExist:
                days = 1
                fen = settings.LOGIN_MAX_DAYS_FEN

            jf = NSJiFen()
            jf.id = jifen_id
            jf.days = days
            jf.type = 'login'
            jf.fen = fen
            jf.save()
            request.session[jifen_id] = jifen_id
            return True, fen, u'连续登录%s天,奖励%s积分' % (days, fen)

    else:
        if hasattr(request.session, LOGINLIST_KEY) and len(request.session[LOGINLIST_KEY]) > 1:
            for jid in request.session[LOGINLIST_KEY]:
                if jifen_id != jid:
                    del request.session[jid]
            request.session[LOGINLIST_KEY] = [jifen_id]
    return False, 0, u''
Exemplo n.º 2
0
def create_data_jifen(request, jifentype, date=None):
    """
    因为创建了数据而获得积分 mysql
    by:尚宗凯 at:2015-3-7
    优化 settings 的配置
    by:王健 at:2015-3-9
    暂停积分
    by:王健 at:2015-06-26
    :param request:
    :param jifentype:
    :param date:
    :return:
    """
    return False, 0, u''
    uid = request.user.pk
    if date == None:
        date = timezone.now()
    jifen_id = LEIJI_JIFEN % (uid, date.strftime('%Y%m%d'), jifentype)

    value = settings.LEIJI_MAX.get(jifentype)[0]
    maxvalue = settings.LEIJI_MAX.get(jifentype)[1]
    message = settings.LEIJI_MAX.get(jifentype)[2]

    if not hasattr(request.session, jifen_id) or request.session[jifen_id] < maxvalue:
        if not hasattr(request.session, LEIJILIST_KEY):
            request.session[LEIJILIST_KEY] = []
        if jifen_id not in request.session[LEIJILIST_KEY]:
            request.session[LEIJILIST_KEY].append(jifen_id)
        try:
            login_data = NSJiFen.objects.get(id=jifen_id)
            if login_data.fen < maxvalue:
                login_data.fen += value
                login_data.save()
                return True, value, message % value
            else:
                request.session[jifen_id] = maxvalue
        except NSJiFen.DoesNotExist:
            jf = NSJiFen()
            jf.id = jifen_id
            jf.type = 'login'
            jf.fen = value
            jf.save()
            request.session[jifen_id] = value
            return True, value, message % value
    else:
        if hasattr(request.session, LEIJILIST_KEY) and len(request.session[LEIJILIST_KEY]) > 1:
            for jid in request.session[LEIJILIST_KEY]:
                if jifen_id != jid:
                    del request.session[jid]
            request.session[LEIJILIST_KEY] = [jifen_id]
    return False, 0, u''