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''
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''