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
137091f4
Commit
137091f4
authored
Jun 22, 2023
by
hujiebin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/add_cp_score' into 'master'
cp补偿分数 See merge request
!10
parents
b5540360
d38be61f
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 @
137091f4
...
...
@@ -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 @
137091f4
...
...
@@ -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