连续1天2分,连续2天5分,连续3天10分,连续4天15分,连续5天20分,连续6天25分,连续7天40分
# 连续登陆积分 天: 积分
login_integral_map = {
0: 0,
1: 2,
2: 2 + 5,
3: 2 + 5 + 10,
4: 2 + 5 + 10 + 15,
5: 2 + 5 + 10 + 15 + 20,
6: 2 + 5 + 10 + 15 + 20 + 25,
7: 2 + 5 + 10 + 15 + 20 + 25 + 40,
}
# 用2进制保存用户登录信息,可以存redis或者mysql
# 假设 a用户 周1(0) ,3(2), 5(4)登录
user_a = 0b10101000
print(user_a)
data = bin(user_a)
login_lt = data[2:].split('0')
a_integral = 0
for i in login_lt:
a_integral += login_integral_map.get(len(i), 0)
# 假设 b用户 周1,2 ,3(2), 5(4)登录
print('a的积分', a_integral)
user_b = 0b11101000
data = bin(user_b)
login_lt = data[2:].split('0')
b_integral = 0
for i in login_lt:
b_integral += login_integral_map.get(len(i), 0)
print('b的积分', b_integral)
# 假设 c用户 周1,2 4,5, 7登录
user_c = 0b11001101
data = bin(user_c)
login_lt = data[2:].split('0')
c_integral = 0
for i in login_lt:
c_integral += login_integral_map.get(len(i), 0)
print('c的积分', c_integral)
>> a的积分 6
>> b的积分 19
>> c的积分 16