def create_data_jifen2(request, jifentype, date=None): """ 因为创建了数据而获得积分 by:王健 at:2015-2-4 优化累计积分,兼容测试 by:王健 at:2015-2-5 屏蔽mongodb by:王健 at:2015-3-8 优化 settings 的配置 by:王健 at:2015-3-9 :param request: :param jifentype: 发送数据的来的积分还是分享的来的积分 :return: """ from mango import database as db 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 str(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) login_data = db.jifen.find_one({'_id': jifen_id}) if not login_data: login_data = {'_id': jifen_id, 'type': jifentype, 'fen': value} result = db.jifen.insert(login_data) if is_success_mongodb_result(result): request.session[jifen_id] = value #todo: 提示文字需要优化 return True, value, message % value else: if login_data.get('fen', 0) < maxvalue: login_data['fen'] = login_data.get('fen', 0) + value result = db.jifen.update({"_id": jifen_id}, {"$set": {'fen': login_data.get('fen', 0)}}) if is_success_mongodb_result(result): request.session[jifen_id] = login_data['fen'] #todo: 提示文字需要优化 return True, value, message % value else: request.session[jifen_id] = maxvalue 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''
def login_jifen2(request, date=None): """ 连续登陆 产生积分 by:王健 at:2015-2-4 优化登录送积分,兼容测试 by:王健 at:2015-2-5 屏蔽mongodb by:王健 at:2015-3-8 优化 settings 的配置 by:王健 at:2015-3-9 :return: """ from mango import database as db uid = request.user.pk if date == None: 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) login_data = db.jifen.find_one({'_id': jifen_id}) if not login_data: pre_date = date + datetime.timedelta(days=-1) pre_jifen_id = LOGIN_JIFEN % (uid, pre_date.strftime('%Y%m%d')) pre_login_data = db.jifen.find_one({'_id': pre_jifen_id}) if not pre_login_data: days = 1 fen = settings.LOGIN_MAX_DAYS_FEN else: days = pre_login_data.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 login_data = {'_id': jifen_id, 'days': days, 'type': 'login', 'fen': fen} result = db.jifen.insert(login_data) if is_success_mongodb_result(result): request.session[jifen_id] = jifen_id return True, fen, u'连续登录%s天,奖励%s积分' % (days, fen) else: request.session[jifen_id] = jifen_id 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''