go-common/app/job/live-userexp/model/exp.go
2019-04-22 18:49:16 +08:00

168 lines
3.2 KiB
Go

package model
const (
_MasterLevelMax = int32(40)
_UserLevelMax = int32(60)
_ColorLevel1 = int32(9868950)
_ColorLevel2 = int32(6406234)
_ColorLevel3 = int32(5805790)
_ColorLevel4 = int32(9868950)
)
var (
_masterLevelMap = []int64{
0, // 0
5000, // 1
20000, // 2
47000, // 3
92000, // 4
210000, // 5
406000, // 6
716000, // 7
1176000, // 8
1806000, // 9
2716000, // 10
3961000, // 11
5641000, // 12
7881000, // 13
10981000, // 14
15481000, // 15
22681000, // 16
31981000, // 17
44281000, // 18
60281000, // 19
81681000, // 20
113881000, // 21
159481000, // 22
221481000, // 23
300481000, // 24
398481000, // 25
522981000, // 26
690981000, // 27
901381000, // 28
1188381000, // 29
1561381000, // 30
2061381000, // 31
2731381000, // 32
3641381000, // 33
4781381000, // 34
6201381000, // 35
7951381000, // 36
9951381000, // 37
12201381000, // 38
14701381000, // 39
}
_userLevelMap = []int64{
100000, // 0
200000, // 1
300000, // 2
400000, // 3
500000, // 4
600000, // 5
700000, // 6
800000, // 7
900000, // 8
1000000, // 9
1800000, // 10
2600000, // 11
3400000, // 12
4200000, // 13
5000000, // 14
6000000, // 15
7000000, // 16
8000000, // 17
9000000, // 18
10000000, // 19
18000000, // 20
26000000, // 21
34000000, // 22
42000000, // 23
50000000, // 24
60000000, // 25
70000000, // 26
80000000, // 27
90000000, // 28
100000000, // 29
110000000, // 30
120000000, // 31
130000000, // 32
140000000, // 33
150000000, // 34
180000000, // 35
210000000, // 36
240000000, // 37
270000000, // 38
300000000, // 39
340000000, // 40
380000000, // 41
420000000, // 42
460000000, // 43
500000000, // 44
550000000, // 45
600000000, // 46
700000000, // 47
800000000, // 48
1000000000, // 49
1200000000, // 50
1400000000, // 51
1600000000, // 52
1800000000, // 53
2000000000, // 54
2200000000, // 55
2400000000, // 56
2600000000, // 57
2800000000, // 58
3000000000, // 59
4000000000, // 60
}
)
// FormatLevel 计算等级
func FormatLevel(exp *Exp) (level *Level) {
level = &Level{Uid: exp.Uid, Uexp: exp.Uexp, Rexp: exp.Rexp, Ulevel: -1, Rlevel: -1, Color: 0}
level.Uid = exp.Uid
level.Uexp = exp.Uexp
level.Rexp = exp.Rexp
// 主播等级
for rlevel, v := range _masterLevelMap {
if exp.Rexp < v {
level.Rlevel = int32(rlevel)
level.Rnext = v - exp.Rexp
break
}
}
if level.Rlevel == -1 {
level.Rlevel = _MasterLevelMax
}
// 用户等级
for ulevel, v := range _userLevelMap {
if exp.Uexp < v {
level.Ulevel = int32(ulevel)
level.Unext = v - exp.Uexp
break
}
}
if level.Ulevel == -1 {
level.Ulevel = _UserLevelMax
}
// 等级颜色
switch {
case level.Ulevel <= 10:
level.Color = _ColorLevel1
case level.Ulevel <= 20:
level.Color = _ColorLevel2
case level.Ulevel <= 40:
level.Color = _ColorLevel3
case level.Ulevel < 50:
level.Color = _ColorLevel4
default:
level.Color = _ColorLevel4
}
return
}