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