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
fbd61010
Commit
fbd61010
authored
Aug 24, 2023
by
chenweijian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
group support
parent
a3bc295f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
77 deletions
+72
-77
group_support.go
cron/group_cron/group_support.go
+72
-77
No files found.
cron/group_cron/group_support.go
View file @
fbd61010
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"
...
@@ -92,75 +87,75 @@ func sendGroupSupportH5(model *domain.Model) error {
...
@@ -92,75 +87,75 @@ func sendGroupSupportH5(model *domain.Model) error {
}
}
// 群组扶持计算-本周旧数据
// 群组扶持计算-本周旧数据
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 30 10 24 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, _, period := group_m.GetSupportLevelTime(time.Now())
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