被邀请人充值任务

This commit is contained in:
sk 2024-05-10 11:44:58 +08:00
parent a943492d80
commit 22dbae7f80
15 changed files with 525 additions and 492 deletions

View File

@ -712,6 +712,7 @@ const (
TaskTypeFirstLogin = 15 // 每日首次登录 TaskTypeFirstLogin = 15 // 每日首次登录
TaskTypeInviteNum = 16 // 邀请绑定数量 TaskTypeInviteNum = 16 // 邀请绑定数量
TaskTypeTurnplate = 17 // 转盘抽奖次数 TaskTypeTurnplate = 17 // 转盘抽奖次数
TaskTypeInviteRecharge = 18 // 被邀请人充值金额
) )
const ( const (
@ -791,3 +792,7 @@ const (
) )
var PetIDs = []int32{PetIDChicken} var PetIDs = []int32{PetIDChicken}
const (
InviteScoreRecharge = 10000 // 用户每充值$1邀请人获得积分
)

View File

@ -1,213 +1,209 @@
ΟΠ(±κ0: ΟΠ(±κ0:
Ο<18>'(±κ0%: Ο<18>'(±κ0J:
Ο<18>N(±κ0J: Ο<18>N(±κ0•:
Ο<18>u(±κ0o: Ο<18>u(±κ:
Ο <>(±κ0: Ο <>(±κ0©:
Ο¨Γ(±κ0Ί: Ο¨Γ(±κ0σ:
Ο°κ(±κ0ί: Ο°κ(±κ0Ύ:
ΟΈ‘(±κ0: ΟΈ‘(±κ0<EFBFBD>:
 ΟΐΈ(±κ0©:  ΟΐΈ(±κ0<EFBFBD>:
 
ΟΘί(±κ: ΟΘί(±κ0<>:
 ΟΠ†(±κ0σ:  ΟΠ†(±κ:
 ΟΨ­(±κ0<>:  ΟΨ­(±κ:
 ΟΰΤ(±κ:  ΟΰΤ(±κ:
Οθϋ(±κ0γ: Οθϋ(±κ0Ε:
ΟπΆ(±κ0<>: ΟπΆ(±κ0<>:
ΟψΙ(±κ0­: ΟψΙ(±κ:
Ο€ρ(±κ0<>: Ο€ρ(±κ0¤ :
Ο<18><>(±κ: Ο<18><>(±κ0ξ :
Ο<18>Ώ(±κ0<>: Ο<18>Ώ(±κ
Ο<18>ζ(±κ0Α: :
Ο <>(±κ: Ο<18>ζ(±κ :
Οπ“ (±κ: Ο <>(±κ0Ν :
Οΐ<> (±κ0Ν : Οπ“ (±κ0΄:
Ο<18>΅(±κ: Οΐ<> (±κ0<>:
Οΰ§(±κ0΄: Ο<18>΅(±κ0<>:
Ο°®(±κ: Οΰ§(±κ0η":
Ο€µ(±κ0<>: Ο°®(±κ0Ξ(:
ΟΠ»(±κ0<>: Ο€µ(±κ0΄.:
Ο Β(±κ0<>: ΟΠ»(±κ04:
ΟπΘ!(±κ: Ο Β(±κ0<>::
ΟΐΟ$(±κ0η": ΟπΘ!(±κ0θ?:
 Ο<18>Φ'(±κ0Ϊ%: ΟΐΟ$(±κ0ΞE:
!Οΰά*(±κ0Ξ(:  Ο<18>Φ'(±κ0µK:
"Ο°γ-(±κ0Α+: !Οΰά*(±κ0<>N:
#Ο€κ0(±κ0΄.: "Ο°γ-(±κ0<>N:
$ΟΠπ3(±κ0§1: #Ο€κ0(±κ0<>N:
%Ο χ6(±κ04: $ΟΠπ3(±κ0<>N:
&Οπύ9(±κ0<>7: %Ο χ6(±κ0<>N:
'Οΐ„=(±κ0<>:: &Οπύ9(±κ0<>N:
(Ο€‰z(±κ0<>N: 'Οΐ„=(±κ0<>N:
(Ο€‰z(±κ0<>N:
)Οΐ–±(±κ0<>N: )Οΐ–±(±κ0<>N:
 *Ο€­β(±κ0<>N: 
*Ο€­β(±κ0<>N:2 +ΟΐΓ“(±κ0<>N:
+ΟΐΓ“(±κ0<>N:2K ,Ο€ΪΔ (±κ0<>N:
,Ο€ΪΔ (±κ0<>N:Kd -Οΐπυ (±κ0<>N:#'
-Οΐπυ (±κ0<>N:d} .Ο€‡§(±κ0<>N:+/
.Ο€‡§(±κ0<>N:} /Οΐ<>Ψ(±κ0<>N:26
/Οΐ<>Ψ(±κ0<>N: 0Ο€΄‰(±κ0<>N:9=
0Ο€΄‰(±κ0<>N:Θ 1ΟΐΚΊ(±κ0<>N:AE
1ΟΐΚΊ(±κ0<>N:Θα 2Ο€αλ(±κ0<>N:HL
2Ο€αλ(±κ0<>N:αϊ 3ΠΠ(±κ0:
3ΠΠ(±κ0: 4Π<18>'(±κ0J:
4Π<18>'(±κ0%: 5Π<18>N(±κ0•:
5Π<18>N(±κ0J: 6Π<18>u(±κ:
6Π<18>u(±κ0o: 7Π <>(±κ:
7Π <>(±κ0•: 8Π¨Γ(±κ0σ:
8Π¨Γ(±κ: 9Π°κ(±κ:
9Π°κ(±κ: :ΠΈ‘(±κ0<>:
:ΠΈ‘(±κ0„: ;ΠΐΈ(±κ0<>:
;ΠΐΈ(±κ: <ΠΘί(±κ0<>:
<ΠΘί(±κ: =ΠΠ†(±κ:
=ΠΠ†(±κ0σ: >ΠΨ­(±κ:
>ΠΨ­(±κ0<>: ?ΠΰΤ(±κ:
?ΠΰΤ(±κ: @Πθϋ(±κ0Ε:
@Πθϋ(±κ0γ: AΠπΆ(±κ0<>:
AΠπΆ(±κ0<>: BΠψΙ(±κ:
BΠψΙ(±κ0­: CΠ€ρ(±κ0¤ :
CΠ€ρ(±κ0<>: DΠ<18><>(±κ0ξ :
DΠ<18><>(±κ: EΠ<18>Ώ(±κ
EΠ<18>Ώ(±κ0<>: :
FΠ<18>ζ(±κ0Α: FΠ<18>ζ(±κ :
GΠ <>(±κ: GΠ <>(±κ0Ν :
HΠπ“ (±κ: HΠπ“ (±κ0΄:
IΠΐ<> (±κ0Ν : IΠΐ<> (±κ0<>:
JΠ<18>΅(±κ: JΠ<18>΅(±κ0<>:
KΠΰ§(±κ0΄: KΠΰ§(±κ0η":
LΠ°®(±κ: LΠ°®(±κ0Ξ(:
MΠ€µ(±κ0<>: MΠ€µ(±κ0΄.:
NΠΠ»(±κ0<>: NΠΠ»(±κ04:
OΠ Β(±κ0<>: OΠ Β(±κ0<>::
PΠπΘ!(±κ: PΠπΘ!(±κ0θ?:
QΠΐΟ$(±κ0η": QΠΐΟ$(±κ0ΞE:
RΠ<18>Φ'(±κ0Ϊ%: RΠ<18>Φ'(±κ0µK:
SΠΰά*(±κ0Ξ(: SΠΰά*(±κ0<>N:
TΠ°γ-(±κ0Α+: TΠ°γ-(±κ0<>N:
UΠ€κ0(±κ0΄.: UΠ€κ0(±κ0<>N:
VΠΠπ3(±κ0§1: VΠΠπ3(±κ0<>N:
WΠ χ6(±κ04: WΠ χ6(±κ0<>N:
XΠπύ9(±κ0<>7: XΠπύ9(±κ0<>N:
YΠΐ„=(±κ0<>:: YΠΐ„=(±κ0<>N:
ZΠ€‰z(±κ0<>N: ZΠ€‰z(±κ0<>N:
[Πΐ–±(±κ0<>N:
[Πΐ–±(±κ0<>N: \Π€­β(±κ0<>N: 
 ]ΠΐΓ“(±κ0<>N:
\Π€­β(±κ0<>N:2 ^Π€ΪΔ (±κ0<>N:
]ΠΐΓ“(±κ0<>N:2K _Πΐπυ (±κ0<>N:#'
^Π€ΪΔ (±κ0<>N:Kd `Π€‡§(±κ0<>N:+/
_Πΐπυ (±κ0<>N:d} aΠΐ<>Ψ(±κ0<>N:26
`Π€‡§(±κ0<>N:} bΠ€΄‰(±κ0<>N:9=
aΠΐ<>Ψ(±κ0<>N: cΠΐΚΊ(±κ0<>N:AE
bΠ€΄‰(±κ0<>N:Θ dΠ€αλ(±κ0<>N:HL
cΠΐΚΊ(±κ0<>N:Θα eΡΠ(±κ0:
dΠ€αλ(±κ0<>N:αϊ fΡ<18>'(±κ0J:
eΡΠ(±κ0: gΡ<18>N(±κ0•:
fΡ<18>'(±κ0%: hΡ<18>u(±κ:
gΡ<18>N(±κ0J: iΡ <>(±κ:
hΡ<18>u(±κ0o: jΡ¨Γ(±κ0σ:
iΡ <>(±κ0•: kΡ°κ(±κ:
jΡ¨Γ(±κ: lΡΈ‘(±κ0<>:
kΡ°κ(±κ: mΡΐΈ(±κ0<>:
lΡΈ‘(±κ0„: nΡΘί(±κ0<>:
mΡΐΈ(±κ: oΡΠ†(±κ:
nΡΘί(±κ: pΡΨ­(±κ:
oΡΠ†(±κ0σ: qΡΰΤ(±κ:
pΡΨ­(±κ0<>: rΡθϋ(±κ0Ε:
qΡΰΤ(±κ: sΡπΆ(±κ0<>:
rΡθϋ(±κ0γ: tΡψΙ(±κ:
sΡπΆ(±κ0<>: uΡ€ρ(±κ0¤ :
tΡψΙ(±κ0­: vΡ<18><>(±κ0ξ :
uΡ€ρ(±κ0<>: wΡ<18>Ώ(±κ
vΡ<18><>(±κ: :
wΡ<18>Ώ(±κ0<>: xΡ<18>ζ(±κ :
xΡ<18>ζ(±κ0Α: yΡ <>(±κ0Ν :
yΡ <>(±κ: zΡπ“ (±κ0΄:
zΡπ“ (±κ: {Ρΐ<> (±κ0<>:
{Ρΐ<> (±κ0Ν : |Ρ<18>΅(±κ0<>:
|Ρ<18>΅(±κ: }Ρΰ§(±κ0η":
}Ρΰ§(±κ0΄: ~Ρ°®(±κ0Ξ(:
~Ρ°®(±κ: Ρ€µ(±κ0΄.:
Ρ€µ(±κ0<>: ΡΠ»(±κ04:
ΡΠ»(±κ0<>: <08>Ρ Β(±κ0<>::
<08>Ρ Β(±κ0<>: ΡπΘ!(±κ0θ?:
ΡπΘ!(±κ: ƒΡΐΟ$(±κ0ΞE:
ƒΡΐΟ$(±κ0η": Ρ<18>Φ'(±κ0µK:
Ρ<18>Φ'(±κ0Ϊ%: Ρΰά*(±κ0<>N:
Ρΰά*(±κ0Ξ(: Ρ°γ-(±κ0<>N:
Ρ°γ-(±κ0Α+: Ρ€κ0(±κ0<>N:
Ρ€κ0(±κ0΄.: <08>ΡΠπ3(±κ0<>N:
<08>ΡΠπ3(±κ0§1: Ρ χ6(±κ0<>N:
Ρ χ6(±κ04: <08>Ρπύ9(±κ0<>N:
<08>Ρπύ9(±κ0<>7: Ρΐ„=(±κ0<>N:
Ρΐ„=(±κ0<>:: <08>Ρ€‰z(±κ0<>N:
<08>Ρ€‰z(±κ0<>N: <08>Ρΐ–±(±κ0<>N:
<08>Ρ€­β(±κ0<>N: 
<08>Ρΐ–±(±κ0<>N: <08>ΡΐΓ“(±κ0<>N:
 <08>Ρ€ΪΔ (±κ0<>N:
<08>Ρ€­β(±κ0<>N:2 Ρΐπυ (±κ0<>N:#'
<08>ΡΐΓ“(±κ0<>N:2K Ρ€‡§(±κ0<>N:+/
<08>Ρ€ΪΔ (±κ0<>N:Kd Ρΐ<>Ψ(±κ0<>N:26
Ρΐπυ (±κ0<>N:d} Ρ€΄‰(±κ0<>N:9=
Ρ€‡§(±κ0<>N:} ΡΐΚΊ(±κ0<>N:AE
Ρΐ<>Ψ(±κ0<>N: Ρ€αλ(±κ0<>N:HL
Ρ€΄‰(±κ0<>N:Θ <10>Π(±κ0:
ΡΐΚΊ(±κ0<>N:Θα <08><10><18>'(±κ0J:
Ρ€αλ(±κ0<>N:αϊ <10><18>N(±κ0•:
<10>Π(±κ0: <08><10><18>u(±κ:
<08><10><18>'(±κ0%: <10> <>(±κ:
<10><18>N(±κ0J: <08><10>¨Γ(±κ0σ:
<08><10><18>u(±κ0o: <08><10>°κ(±κ:
<10> <>(±κ0•: <08><10>Έ‘(±κ0<>:
<08><10>¨Γ(±κ: <08><10>ΐΈ(±κ0<>:
<08><10>°κ(±κ:  <10>Θί(±κ0<>:
<08><10>Έ‘(±κ0„: ΅<10>Π†(±κ:
<08><10>ΐΈ(±κ: Ά<10>Ψ­(±κ:
 <10>Θί(±κ: £<10>ΰΤ(±κ:
΅<10>Π†(±κ0σ: ¤<10>θϋ(±κ0Ε:
Ά<10>Ψ­(±κ0<>: ¥<10>πΆ(±κ0<>:
£<10>ΰΤ(±κ: ¦<10>ψΙ(±κ:
¤<10>θϋ(±κ0γ: §<10>€ρ(±κ0¤ :
¥<10>πΆ(±κ0<>: ¨<10><18><>(±κ0ξ :
¦<10>ψΙ(±κ0­: ©<10><18>Ώ(±κ
§<10>€ρ(±κ0<>: :
¨<10><18><>(±κ: <08><10><18>ζ(±κ :
©<10><18>Ώ(±κ0<>: «<10> <>(±κ0Ν :
<08><10><18>ζ(±κ0Α: ¬<10>π“ (±κ0΄:
«<10> <>(±κ: ­<10>ΐ<> (±κ0<>:
¬<10>π“ (±κ: ®<10><18>΅(±κ0<>:
­<10>ΐ<> (±κ0Ν : <10>ΰ§(±κ0η":
®<10><18>΅(±κ: °<10>°®(±κ0Ξ(:
<10>ΰ§(±κ0΄: ±<10>€µ(±κ0΄.:
°<10>°®(±κ: ²<10>Π»(±κ04:
±<10>€µ(±κ0<>: ³<10> Β(±κ0<>::
²<10>Π»(±κ0<>: ΄<10>πΘ!(±κ0θ?:
³<10> Β(±κ0<>: µ<10>ΐΟ$(±κ0ΞE:
΄<10>πΘ!(±κ: <10><18>Φ'(±κ0µK:
µ<10>ΐΟ$(±κ0η": ·<10>ΰά*(±κ0<>N:
<10><18>Φ'(±κ0Ϊ%: Έ<10>°γ-(±κ0<>N:
·<10>ΰά*(±κ0Ξ(: Ή<10>€κ0(±κ0<>N:
Έ<10>°γ-(±κ0Α+: Ί<10>Ππ3(±κ0<>N:
Ή<10>€κ0(±κ0΄.: »<10> χ6(±κ0<>N:
Ί<10>Ππ3(±κ0§1: Ό<10>πύ9(±κ0<>N:
»<10> χ6(±κ04: ½<10>ΐ„=(±κ0<>N:
Ό<10>πύ9(±κ0<>7: Ύ<10>€‰z(±κ0<>N:
½<10>ΐ„=(±κ0<>:: Ώ<10>ΐ–±(±κ0<>N:
Ύ<10>€‰z(±κ0<>N: ΐ<10>€­β(±κ0<>N: 
Α<10>ΐΓ“(±κ0<>N:
Ώ<10>ΐ–±(±κ0<>N: Β<10>€ΪΔ (±κ0<>N:
 Γ<10>ΐπυ (±κ0<>N:#'
ΐ<10>€­β(±κ0<>N:2 Δ<10>€‡§(±κ0<>N:+/
Α<10>ΐΓ“(±κ0<>N:2K Ε<10>ΐ<>Ψ(±κ0<>N:26
Β<10>€ΪΔ (±κ0<>N:Kd Ζ<10>€΄‰(±κ0<>N:9=
Γ<10>ΐπυ (±κ0<>N:d} Η<10>ΐΚΊ(±κ0<>N:AE
Δ<10>€‡§(±κ0<>N:} Θ<10>€αλ(±κ0<>N:HL
Ε<10>ΐ<>Ψ(±κ0<>N:
Ζ<10>€΄‰(±κ0<>N:Θ
Η<10>ΐΚΊ(±κ0<>N:Θα
Θ<10>€αλ(±κ0<>N:αϊ
иП░N(╠Й0∙: иП░N(╠Й0∙:
йПп├(╠Й: йПп├(╠Й:
кПю  (╠Й0 : кПю  (╠Й0 :

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -1,5 +1,5 @@
6Õ†Ö†׆Ó†Ô†"¡<>À„= 6Õ†Ö†׆Ó†Ô†"¡<>À„=
.и<>й<>к<EFBFBD>л<EFBFBD>"Ё<>Р<>= .л<EFBFBD>и<EFBFBD>й<>к<>"Ё<>Р<>=
Wж<EFBFBD>е<>д<>з<EFBFBD>и<>й<>к<>л<>г<>" Ё<><10>­т Wз<>и<>й<>к<>л<>г<EFBFBD>д<>е<>ж<EFBFBD>" Ё<><10>­т
]з<>и<EFBFBD>л<>г<>д<>ж<>м<>е<>й<>к<EFBFBD>"Ђ<>є ]з<>к<EFBFBD>г<>е<>и<>й<>л<>м<>д<>ж<EFBFBD>"Ђ<>є

Binary file not shown.

View File

@ -199,6 +199,18 @@
"100002": 10 "100002": 10
} }
}, },
{
"Id": 21,
"Order": 6,
"ActivityType": 3,
"TaskType": 18,
"TargetTimes": 100,
"FinishTimes": 1,
"Award": {
"100001": 10000000,
"100002": 10
}
},
{ {
"Id": 17, "Id": 17,
"Order": 1, "Order": 1,

View File

@ -48,6 +48,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
type M struct { type M struct {
Score int64 Score int64
Money int64
} }
var tc []M var tc []M
@ -58,6 +59,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
{"$group": bson.M{ {"$group": bson.M{
"_id": nil, "_id": nil,
"score": bson.M{"$sum": "$score"}, "score": bson.M{"$sum": "$score"},
"money": bson.M{"$sum": "$money"},
}}, }},
}).AllowDiskUse().All(&tc) }).AllowDiskUse().All(&tc)
if err != nil { if err != nil {
@ -67,6 +69,7 @@ func (b *BindScoreSvc) GetInviteScore(req *model.InviteScoreReq, ret *model.Invi
if len(tc) > 0 { if len(tc) > 0 {
ret.Score = tc[0].Score ret.Score = tc[0].Score
ret.Money = tc[0].Money
c := PlayerDataCollection(req.Platform) c := PlayerDataCollection(req.Platform)
if c == nil { if c == nil {
return PlayerColError return PlayerColError

View File

@ -53,6 +53,7 @@ type InviteScore struct {
Tp int32 // 积分类型 common.InviteScoreType~ Tp int32 // 积分类型 common.InviteScoreType~
Score int64 // 积分 Score int64 // 积分
Ts int64 // 时间戳 Ts int64 // 时间戳
Money int64 // 充值金额
} }
type InviteScoreReq struct { type InviteScoreReq struct {
@ -61,16 +62,18 @@ type InviteScoreReq struct {
} }
type InviteScoreRet struct { type InviteScoreRet struct {
Score int64 Score int64 // 包含扣积分
ZScore int64 ZScore int64 // 只包含大于0的积分
Money int64 // 充值金额
} }
// GetInviteScore 查询总积分 // GetInviteScore 查询总积分
// 下级玩家所有积分 // 下级玩家所有积分
func GetInviteScore(plt string, snid int32) (int64, int64, error) { // 返回 包含扣积分只包含大于0的积分充值金额
func GetInviteScore(plt string, snid int32) (int64, int64, int64, error) {
if rpcCli == nil { if rpcCli == nil {
logger.Logger.Warnf("rpcCli is nil") logger.Logger.Warnf("rpcCli is nil")
return 0, 0, errors.New("rpcCli is nil") return 0, 0, 0, errors.New("rpcCli is nil")
} }
req := &InviteScoreReq{ req := &InviteScoreReq{
@ -81,10 +84,10 @@ func GetInviteScore(plt string, snid int32) (int64, int64, error) {
err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30) err := rpcCli.CallWithTimeout("BindScoreSvc.GetInviteScore", req, ret, time.Second*30)
if err != nil { if err != nil {
logger.Logger.Warnf("GetInviteScore err:%v", err) logger.Logger.Warnf("GetInviteScore err:%v", err)
return 0, 0, err return 0, 0, 0, err
} }
return ret.Score, ret.ZScore, err return ret.Score, ret.ZScore, ret.Money, err
} }
// SaveInviteScore 保存积分变更记录 // SaveInviteScore 保存积分变更记录

View File

@ -313,28 +313,25 @@ func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64)
res, err = webapi.ApiGetInviteLink(common.GetAppId(), req) res, err = webapi.ApiGetInviteLink(common.GetAppId(), req)
return nil return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
info := webapi_proto.SAPlayerInviteLink{}
link := ""
if err != nil || res == nil { if err != nil || res == nil {
logger.Logger.Errorf("ApiGetInviteLink err %v or not return", err) logger.Logger.Errorf("ApiGetInviteLink err %v or not return", err)
return } else {
proto.Unmarshal(res, &info)
logger.Logger.Infof("ApiGetInviteLink info %v", info.String())
link = info.Link
} }
var info webapi_proto.SAPlayerInviteLink
proto.Unmarshal(res, &info)
if info.Tag == webapi_proto.TagCode_SUCCESS {
ret := &welfare.SCInviteInfo{ ret := &welfare.SCInviteInfo{
Num: p.InviteNum, Num: p.InviteNum,
Code: p.InviteCode, Code: p.InviteCode,
InviteUrl: info.Link, InviteUrl: link,
Score: p.InviteScore, Score: p.InviteScore,
OtherCode: p.OtherCode, OtherCode: p.OtherCode,
} }
p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret) p.SendToClient(int(welfare.SPacketID_PACKET_SCInviteInfo), ret)
logger.Logger.Tracef("SCInviteInfo %v", ret) logger.Logger.Tracef("SCInviteInfo %v", ret)
} else {
logger.Logger.Errorf("ApiGetInviteLink:%v", info.String())
}
})).Start() })).Start()
return nil return nil
} }

View File

@ -30,7 +30,8 @@ func SaveInviteScore(data *model.InviteScore) {
return nil return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) { }), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId) p := PlayerMgrSington.GetPlayerBySnId(data.InviteSnId)
if err == nil && p != nil && data.Score != 0 { if err == nil && p != nil {
if data.Score != 0 {
if data.Score < 0 { if data.Score < 0 {
if -data.Score > p.InviteScore { if -data.Score > p.InviteScore {
data.Score = -p.InviteScore data.Score = -p.InviteScore
@ -47,14 +48,22 @@ func SaveInviteScore(data *model.InviteScore) {
}) })
} }
} }
if data.Money > 0 {
TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{
SnId: p.SnId,
Num: data.Money,
})
}
}
})).StartByFixExecutor(fmt.Sprintf("invite_score_%v", data.InviteSnId)) })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", data.InviteSnId))
} }
func GetInviteScore(platform string, snid int32) { func GetInviteScore(platform string, snid int32) {
var n, z int64 var n, z, money int64
var err error var err error
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
n, z, err = model.GetInviteScore(platform, snid) n, z, money, err = model.GetInviteScore(platform, snid)
if err != nil { if err != nil {
logger.Logger.Errorf("GetInviteScore error:%v", err) logger.Logger.Errorf("GetInviteScore error:%v", err)
return err return err
@ -72,6 +81,12 @@ func GetInviteScore(platform string, snid int32) {
SnId: p.SnId, SnId: p.SnId,
Num: z, Num: z,
}) })
p.ResetTaskN(common.TaskTypeInviteRecharge)
TaskSubjectSingleton.Touch(common.TaskTypeInviteRecharge, &TaskData{
SnId: p.SnId,
Num: money,
})
} }
})).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid)) })).StartByFixExecutor(fmt.Sprintf("invite_score_%v", snid))
} }

View File

@ -4431,8 +4431,9 @@ func (this *Player) InviteTask(scoreType int32, gameId int32, n int64) {
SnId: this.SnId, SnId: this.SnId,
InviteSnId: this.InviteSnId, InviteSnId: this.InviteSnId,
Tp: scoreType, Tp: scoreType,
Score: a * 10000, Score: a * common.InviteScoreRecharge,
Ts: time.Now().UnixNano(), Ts: time.Now().UnixNano(),
Money: n,
}) })
case common.InviteScoreTypeGameTimes: case common.InviteScoreTypeGameTimes:

View File

@ -245,4 +245,5 @@ func init() {
TaskSubjectSingleton.Attach(common.TaskTypeFirstLogin, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeFirstLogin, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeInviteNum, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle) TaskSubjectSingleton.Attach(common.TaskTypeTurnplate, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeInviteRecharge, taskHandle)
} }

Binary file not shown.

Binary file not shown.