Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-user
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenweijian
hilo-user
Commits
d38be61f
Commit
d38be61f
authored
Jun 22, 2023
by
chenweijian
Committed by
hujiebin
Jun 22, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cp补偿分数
parent
b5540360
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
96 additions
and
0 deletions
+96
-0
cp_level.go
domain/service/event_s/cp_level.go
+95
-0
event_init.go
domain/service/event_s/event_init.go
+1
-0
No files found.
domain/service/event_s/cp_level.go
View file @
d38be61f
...
...
@@ -2,8 +2,11 @@ package event_s
import
(
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/resource/config"
"git.hilo.cn/hilo-common/resource/redisCli"
"github.com/jinzhu/now"
"hilo-user/_const/enum/cp_e"
"hilo-user/_const/enum/gift_e"
"hilo-user/domain/event/gift_ev"
"hilo-user/domain/model/cp_m"
"time"
...
...
@@ -69,3 +72,95 @@ func CpGiftEvent() {
return
nil
})
}
// 漏掉加分数的送礼记录,补上cp增加分数
// 送礼增加cp等级
// 送礼增加cp排行榜
func
CompensateCpScore
()
{
if
!
config
.
IsMaster
()
{
return
}
model
:=
domain
.
CreateModelNil
()
num
,
err
:=
redisCli
.
IncrNumExpire
(
"scirpt:compensateCpScore"
,
1
,
time
.
Hour
*
999
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore err:%v"
,
err
)
}
if
num
>
1
{
model
.
Log
.
Errorf
(
"CompensateCpScore 执行过了,退出"
)
return
}
// 查找需要补分的送礼记录
type
GiftOperate
struct
{
Id
uint64
`json:"id"`
ResGiftId
uint64
`json:"res_gift_id"`
GiftN
int32
`json:"gift_n"`
SendUserId
uint64
`json:"send_user_id"`
ReceiveUserId
uint64
`json:"receive_user_id"`
SendUserDiamond
uint32
`json:"send_user_diamond"`
SceneType
int8
`json:"scene_type"`
SceneUid
string
`json:"scene_uid"`
CreatedTime
time
.
Time
`json:"created_time"`
}
rows
:=
make
([]
*
GiftOperate
,
0
)
err
=
model
.
DB
()
.
Model
(
GiftOperate
{})
.
Where
(
"created_time < ?"
,
"2023-06-22 11:20:15"
)
.
Where
(
"res_gift_id in (?)"
,
[]
int
{
3561
,
3571
,
3581
,
3591
,
3601
,
3611
,
3621
,
3631
,
3641
,
3651
,
3661
,
3671
,
3681
,
3691
,
3701
,
3711
})
.
Find
(
&
rows
)
.
Error
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore err:%v"
,
err
)
return
}
model
.
Log
.
Infof
(
"CompensateCpScore len(rows):%v"
,
len
(
rows
))
for
idx
,
r
:=
range
rows
{
diamonds
:=
r
.
SendUserDiamond
// 有cp关系
if
cpRelation
,
exits
:=
cp_m
.
GetCpRelationPair
(
model
,
r
.
SendUserId
,
r
.
ReceiveUserId
);
exits
{
if
err
:=
cp_m
.
AddCpLevelPoints
(
model
,
cpRelation
,
diamonds
,
gift_e
.
GiftOperateSceneType
(
r
.
SceneType
),
r
.
SceneUid
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore AddCpLevelPoints fail:%v"
,
err
)
return
}
if
err
:=
cp_m
.
AddCpDayRank
(
model
,
cpRelation
,
diamonds
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore AddCpDayRank fail:%v"
,
err
)
return
}
// 检查最新的等级
if
cpLevel
:=
cp_m
.
GetCpLevel
(
model
,
cpRelation
.
Id
);
cpLevel
.
CpId
>=
0
{
points
:=
cpLevel
.
Points
+
cp_e
.
CpLevelPoints
[
cpLevel
.
Level
]
if
err
:=
cp_m
.
UpdateCpAchievement
(
model
,
cpLevel
.
CpId
,
cpRelation
.
UserId1
,
cpRelation
.
UserId2
,
cp_e
.
CpAchievementLevel
,
points
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore UpdateCpAchievement fail:%v"
,
err
)
}
}
// 检查最高的分数
for
_
,
queryType
:=
range
[]
string
{
"day"
,
"week"
,
"month"
}
{
var
beginDate
,
endDate
string
var
cpAchievementType
cp_e
.
CpAchievement
switch
queryType
{
case
"day"
:
beginDate
,
endDate
=
r
.
CreatedTime
.
Format
(
"2006-01-02"
),
r
.
CreatedTime
.
Format
(
"2006-01-02"
)
cpAchievementType
=
cp_e
.
CpAchievementDayRank
case
"week"
:
beginDate
=
now
.
With
(
r
.
CreatedTime
)
.
BeginningOfWeek
()
.
Format
(
"2006-01-02"
)
endDate
=
now
.
With
(
r
.
CreatedTime
)
.
EndOfWeek
()
.
Format
(
"2006-01-02"
)
cpAchievementType
=
cp_e
.
CpAchievementWeekRank
case
"month"
:
beginDate
=
now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
)
endDate
=
now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
cpAchievementType
=
cp_e
.
CpAchievementMonthRank
}
if
data
:=
cp_m
.
GetCpDayRank
(
model
,
beginDate
,
endDate
,
cpRelation
.
Id
);
data
.
Score
>
0
{
if
err
:=
cp_m
.
UpdateCpAchievement
(
model
,
cpRelation
.
Id
,
cpRelation
.
UserId1
,
cpRelation
.
UserId2
,
cpAchievementType
,
data
.
Score
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"CompensateCpScore UpdateCpAchievement fail:%v"
,
err
)
}
}
}
}
model
.
Log
.
Infof
(
"CompensateCpScore idx:%v"
,
idx
)
if
idx
%
1000
==
0
{
time
.
Sleep
(
time
.
Millisecond
*
100
)
}
}
model
.
Log
.
Infof
(
"CompensateCpScore 补偿完毕"
)
}
domain/service/event_s/event_init.go
View file @
d38be61f
...
...
@@ -16,6 +16,7 @@ func EventInit() {
UserBagSendEvent
()
CpGiftEvent
()
CpSpaceVisitEvent
()
CompensateCpScore
()
}
func
UserBagSendEvent
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment