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
Commits
4a9e542a
Commit
4a9e542a
authored
Aug 25, 2023
by
chenweijian
Browse files
Options
Browse Files
Download
Plain Diff
group support
parents
66fa2a11
8aed32d6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
75 additions
and
79 deletions
+75
-79
cron.go
cron/cron.go
+1
-1
group_support.go
cron/group_cron/group_support.go
+74
-78
No files found.
cron/cron.go
View file @
4a9e542a
...
...
@@ -21,5 +21,5 @@ func Init() {
//group_cron.GroupInEventInit() // 进房事件
group_cron
.
CreateGroup
()
//
group_cron
.
CalcGroupSupport
()
// 群组扶持计算
group_cron
.
CalcGroupSupport_OldData
()
//
group_cron.CalcGroupSupport_OldData()
}
cron/group_cron/group_support.go
View file @
4a9e542a
package
group_cron
import
(
"context"
"encoding/json"
"git.hilo.cn/hilo-common/_const/rediskey"
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/resource/config"
"git.hilo.cn/hilo-common/resource/redisCli"
"git.hilo.cn/hilo-common/sdk/tencentyun"
"git.hilo.cn/hilo-common/utils"
"github.com/robfig/cron"
"hilo-group/_const/enum/gift_e"
"hilo-group/_const/enum/group_e"
"hilo-group/domain/model/gift_m"
"hilo-group/domain/model/group_m"
"hilo-group/domain/service/group_s"
"time"
...
...
@@ -91,76 +86,77 @@ func sendGroupSupportH5(model *domain.Model) error {
return
nil
}
// 群组扶持计算-旧数据初始化进redis
func
CalcGroupSupport_OldData
()
{
if
!
config
.
IsMaster
()
{
return
}
c
:=
cron
.
New
()
spec
:=
"0 10 11 25 8 ?"
_
=
c
.
AddFunc
(
spec
,
func
()
{
defer
utils
.
CheckGoPanic
()
var
model
=
domain
.
CreateModelNil
()
//开始
model
.
Log
.
Infof
(
"CalcGroupSupport_OldData start"
)
beginTime
,
endTime
,
period
:=
group_m
.
GetSupportLevelTime
(
time
.
Now
()
.
AddDate
(
0
,
0
,
-
group_e
.
SUPPORT_LEVEL_PERIOD_DAY
))
//endTime := time.Unix(1692843600, 0)
g
:=
gift_m
.
GiftOperate
{
SceneType
:
gift_e
.
GroupSceneType
,
Model
:
model
}
records
,
err
:=
g
.
BatchGetConsumeByRange
(
beginTime
,
endTime
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupSupport_OldData beginTime:%v, endTime:%v, err:%v"
,
beginTime
,
endTime
,
err
)
return
}
// 流水写入redis
keyDiamond
:=
rediskey
.
GetGroupSupportConsumeSummary
(
period
)
for
_
,
r
:=
range
records
{
if
r
.
SceneUid
==
""
||
r
.
Consume
<=
0
{
continue
}
_
,
err
=
model
.
RedisCluster
.
ZIncrBy
(
context
.
Background
(),
keyDiamond
,
float64
(
r
.
Consume
),
r
.
SceneUid
)
.
Result
()
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupSupport_OldData groupSupport key:%s, val:%d, member:%s, err:%v"
,
keyDiamond
,
r
.
Consume
,
r
.
SceneUid
,
err
)
}
}
err
=
redisCli
.
SetExpire
(
model
.
RedisCluster
,
keyDiamond
,
time
.
Hour
*
24
*
14
)
// 保留两周
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupSupport_OldData groupSupport key:%s, err:%v"
,
keyDiamond
,
err
)
return
}
// 支持者写入redis
for
_
,
r
:=
range
records
{
if
r
.
SceneUid
==
""
||
r
.
C
<=
0
{
continue
}
// 支持者列表
support
:=
gift_m
.
GiftOperate
{
SceneType
:
gift_e
.
GroupSceneType
,
SceneUid
:
r
.
SceneUid
,
Model
:
model
}
uids
,
err
:=
support
.
BatchGetSupportList
(
beginTime
,
endTime
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupSupport_OldData beginTime:%v, endTime:%v, imGroupId:%v, err:%v"
,
beginTime
,
endTime
,
r
.
SceneUid
,
err
)
continue
}
if
len
(
uids
)
<=
0
{
continue
}
// 支持者数量
keySupportNum
:=
rediskey
.
GetGroupSupportCountSupporter
(
period
,
r
.
SceneUid
)
for
_
,
uid
:=
range
uids
{
err
=
model
.
RedisCluster
.
SAdd
(
context
.
Background
(),
keySupportNum
,
uid
)
.
Err
()
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupSupport_OldData groupSupport key:%s, UserId:%d, err:%v"
,
keySupportNum
,
uid
,
err
)
}
}
err
=
redisCli
.
SetExpire
(
model
.
RedisCluster
,
keySupportNum
,
time
.
Hour
*
24
*
14
)
// 保留两周
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"AddSendGiftEventAsync groupSupport key:%s, err:%v"
,
keySupportNum
,
err
)
}
}
model
.
Log
.
Infof
(
"CalcGroupSupport_OldData end"
)
})
c
.
Start
()
}
// 群组扶持计算-旧数据
//func CalcGroupSupport_OldData() {
// if !config.IsMaster() {
// return
// }
// c := cron.New()
// spec := "0 20 11 25 8 ?"
// _ = c.AddFunc(spec, func() {
// defer utils.CheckGoPanic()
// var model = domain.CreateModelNil()
// //开始
// model.Log.Infof("CalcGroupSupport_OldData start")
//
// beginTime, endTime, period := group_m.GetSupportLevelTime(time.Now().AddDate(0, 0, -group_e.SUPPORT_LEVEL_PERIOD_DAY))
// //beginTime, _, period := group_m.GetSupportLevelTime(time.Now())
// //endTime := time.Unix(1692843600, 0)
//
// g := gift_m.GiftOperate{SceneType: gift_e.GroupSceneType, Model: model}
// records, err := g.BatchGetConsumeByRange(beginTime, endTime)
// if err != nil {
// model.Log.Errorf("CalcGroupSupport_OldData beginTime:%v, endTime:%v, err:%v", beginTime, endTime, err)
// return
// }
// // 流水写入redis
// keyDiamond := rediskey.GetGroupSupportConsumeSummary(period)
// for _, r := range records {
// if r.SceneUid == "" || r.Consume <= 0 {
// continue
// }
// _, err = model.RedisCluster.ZIncrBy(context.Background(), keyDiamond, float64(r.Consume), r.SceneUid).Result()
// if err != nil {
// model.Log.Errorf("CalcGroupSupport_OldData groupSupport key:%s, val:%d, member:%s, err:%v",
// keyDiamond, r.Consume, r.SceneUid, err)
// }
// }
// err = redisCli.SetExpire(model.RedisCluster, keyDiamond, time.Hour*24*14) // 保留两周
// if err != nil {
// model.Log.Errorf("CalcGroupSupport_OldData groupSupport key:%s, err:%v", keyDiamond, err)
// return
// }
// // 支持者写入redis
// for _, r := range records {
// if r.SceneUid == "" || r.C <= 0 {
// continue
// }
// // 支持者列表
// support := gift_m.GiftOperate{SceneType: gift_e.GroupSceneType, SceneUid: r.SceneUid, Model: model}
// uids, err := support.BatchGetSupportList(beginTime, endTime)
// if err != nil {
// model.Log.Errorf("CalcGroupSupport_OldData beginTime:%v, endTime:%v, imGroupId:%v, err:%v", beginTime, endTime, r.SceneUid, err)
// continue
// }
// if len(uids) <= 0 {
// continue
// }
// // 支持者数量
// keySupportNum := rediskey.GetGroupSupportCountSupporter(period, r.SceneUid)
// for _, uid := range uids {
// err = model.RedisCluster.SAdd(context.Background(), keySupportNum, uid).Err()
// if err != nil {
// model.Log.Errorf("CalcGroupSupport_OldData groupSupport key:%s, UserId:%d, err:%v", keySupportNum, uid, err)
// }
// }
// err = redisCli.SetExpire(model.RedisCluster, keySupportNum, time.Hour*24*14) // 保留两周
// if err != nil {
// model.Log.Errorf("AddSendGiftEventAsync groupSupport key:%s, err:%v", keySupportNum, err)
// }
// }
//
// model.Log.Infof("CalcGroupSupport_OldData end")
// })
//
// c.Start()
//}
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