Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-group
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
hujiebin
hilo-group
Compare Revisions
master...feature/enterRoom
Source
feature/enterRoom
Select Git revision
...
Target
master
Select Git revision
Compare
Commits (3)
用户进房的key
· 298be3eb
hujiebin
authored
Jul 25, 2023
298be3eb
清理房间访客
· 8ee525e9
hujiebin
authored
Jul 25, 2023
8ee525e9
Update enter_room.go
· 8978ef5b
hujiebin
authored
Jul 25, 2023
8978ef5b
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
0 deletions
+94
-0
enter_room.go
_const/redis_key/group_k/enter_room.go
+21
-0
enter_room.go
domain/cache/group_c/enter_room.go
+71
-0
event_init.go
domain/service/event_s/event_init.go
+2
-0
No files found.
_const/redis_key/group_k/enter_room.go
0 → 100644
View file @
8978ef5b
package
group_k
import
(
"fmt"
"hilo-group/_const/redis_key"
)
// 用户进房的key
const
(
UserEnterRoomPrefix
=
"uer:"
UserEnterRoomUserKey
=
UserEnterRoomPrefix
+
"u:${user_id}"
UserEnterRoomGroupKey
=
UserEnterRoomPrefix
+
"g:${user_id}"
)
func
GetUserEnterRoomUserKey
(
userId
uint64
)
string
{
return
redis_key
.
ReplaceKey
(
UserEnterRoomUserKey
,
fmt
.
Sprintf
(
"%d"
,
userId
))
}
func
GetUserEnterRoomGroupKey
(
groupId
string
)
string
{
return
redis_key
.
ReplaceKey
(
UserEnterRoomGroupKey
,
groupId
)
}
domain/cache/group_c/enter_room.go
0 → 100644
View file @
8978ef5b
package
group_c
import
(
"fmt"
"git.hilo.cn/hilo-common/domain"
"github.com/go-redis/redis/v8"
"hilo-group/_const/redis_key/group_k"
"strconv"
"time"
)
// 用户进房
func
ZAddUserEnterRoom
(
model
*
domain
.
Model
,
userId
uint64
,
imGroupId
string
)
{
userKey
:=
group_k
.
GetUserEnterRoomUserKey
(
userId
)
groupKey
:=
group_k
.
GetUserEnterRoomGroupKey
(
imGroupId
)
if
err
:=
model
.
Redis
.
ZAdd
(
model
,
userKey
,
&
redis
.
Z
{
Score
:
float64
(
time
.
Now
()
.
Unix
()),
Member
:
imGroupId
,
})
.
Err
();
err
!=
nil
{
model
.
Log
.
Errorf
(
"ZAddUserEnterRoom user fail:%v"
,
err
)
}
if
err
:=
model
.
Redis
.
ZAdd
(
model
,
groupKey
,
&
redis
.
Z
{
Score
:
float64
(
time
.
Now
()
.
Unix
()),
Member
:
userId
,
})
.
Err
();
err
!=
nil
{
model
.
Log
.
Errorf
(
"ZAddUserEnterRoom room fail:%v"
,
err
)
}
}
// 获取最近房间访客
func
GetLastRoomVisitors
(
model
*
domain
.
Model
,
imGroupId
string
)
(
userIds
[]
uint64
)
{
groupKey
:=
group_k
.
GetUserEnterRoomGroupKey
(
imGroupId
)
res
,
err
:=
model
.
Redis
.
ZRangeByScore
(
model
,
groupKey
,
&
redis
.
ZRangeBy
{
Min
:
fmt
.
Sprintf
(
"%d"
,
time
.
Now
()
.
AddDate
(
0
,
0
,
-
15
)
.
Unix
()),
Max
:
"+inf"
,
})
.
Result
()
if
err
!=
nil
{
return
}
for
_
,
u
:=
range
res
{
uid
,
_
:=
strconv
.
ParseUint
(
u
,
10
,
64
)
if
uid
>
0
{
userIds
=
append
(
userIds
,
uid
)
}
}
return
}
// 获取最近进入的房间
func
GetUserRecentRooms
(
model
*
domain
.
Model
,
userId
uint64
)
(
imGroupIds
[]
string
)
{
userKey
:=
group_k
.
GetUserEnterRoomUserKey
(
userId
)
var
err
error
imGroupIds
,
err
=
model
.
Redis
.
ZRangeByScore
(
model
,
userKey
,
&
redis
.
ZRangeBy
{
Min
:
fmt
.
Sprintf
(
"%d"
,
time
.
Now
()
.
AddDate
(
0
,
0
,
-
15
)
.
Unix
()),
Max
:
"+inf"
,
})
.
Result
()
if
err
!=
nil
{
return
}
return
}
// 清理房间访客
// 15天前访问的
func
RemoveRoomVisitors
(
model
*
domain
.
Model
,
imGroupId
string
)
{
groupKey
:=
group_k
.
GetUserEnterRoomGroupKey
(
imGroupId
)
err
:=
model
.
Redis
.
ZRemRangeByScore
(
model
,
groupKey
,
"-inf"
,
fmt
.
Sprintf
(
"%d"
,
time
.
Now
()
.
AddDate
(
0
,
0
,
-
15
)
.
Unix
()))
.
Err
()
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"RemoveRoomVisitors fail:%v"
,
err
)
}
}
domain/service/event_s/event_init.go
View file @
8978ef5b
...
@@ -10,6 +10,7 @@ import (
...
@@ -10,6 +10,7 @@ import (
"hilo-group/_const/enum/group_e"
"hilo-group/_const/enum/group_e"
"hilo-group/_const/enum/msg_e"
"hilo-group/_const/enum/msg_e"
"hilo-group/_const/enum/task_e"
"hilo-group/_const/enum/task_e"
"hilo-group/domain/cache/group_c"
"hilo-group/domain/event/gift_ev"
"hilo-group/domain/event/gift_ev"
"hilo-group/domain/event/group_ev"
"hilo-group/domain/event/group_ev"
"hilo-group/domain/event/group_power_ev"
"hilo-group/domain/event/group_power_ev"
...
@@ -246,6 +247,7 @@ func GroupEvents() {
...
@@ -246,6 +247,7 @@ func GroupEvents() {
}
}
err
:=
uer
.
Save
(
model
.
Db
)
err
:=
uer
.
Save
(
model
.
Db
)
model
.
Log
.
Infof
(
"AddGroupInAsync, UserEnterRoom err: %v"
,
err
)
model
.
Log
.
Infof
(
"AddGroupInAsync, UserEnterRoom err: %v"
,
err
)
group_c
.
ZAddUserEnterRoom
(
model
,
event
.
UserId
,
event
.
GroupId
)
// redis存储
return
err
return
err
})
})
...
...