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
e30947cd
Commit
e30947cd
authored
Apr 27, 2023
by
hujiebin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into feature/3.7.0-up
parents
5bf4f1b1
beb01f97
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
521 additions
and
90 deletions
+521
-90
cron.go
cron/cron.go
+1
-0
group_power_month_act.go
cron/group_cron/group_power_month_act.go
+22
-0
group_rank.go
cv/group_power_cv/group_rank.go
+12
-2
groupPower.go
domain/model/groupPower_m/groupPower.go
+31
-0
group_rank.go
domain/model/groupPower_m/group_rank.go
+12
-3
group_star.go
domain/model/groupPower_m/group_star.go
+2
-2
mic.go
domain/model/mic_m/mic.go
+1
-1
event_init.go
domain/service/event_s/event_init.go
+2
-0
group_power.go
domain/service/group_power_s/group_power.go
+299
-0
group_op.go
domain/service/group_s/group_op.go
+22
-1
group_power_month_act.sql
mysql/group_power_month_act.sql
+17
-0
group_rank.go
route/group_power_r/group_rank.go
+75
-77
group_op.go
route/group_r/group_op.go
+12
-4
router.go
route/router.go
+1
-0
group_power_test.go
test/group_power_test.go
+12
-0
No files found.
cron/cron.go
View file @
e30947cd
...
...
@@ -15,4 +15,5 @@ func Init() {
gift_cron
.
GiftRemark
()
// 礼物消息补偿
mic_cron
.
OnMicCheck
()
// 检查上麦
group_cron
.
GroupPowerExpClear
()
// 清理家族经验/等级
group_cron
.
GroupPowerMonthRankAct
()
}
cron/group_cron/group_power_month_act.go
0 → 100644
View file @
e30947cd
package
group_cron
import
(
"git.hilo.cn/hilo-common/domain"
"github.com/robfig/cron"
"hilo-group/domain/service/group_power_s"
)
// 家族贡献月度排行榜发奖
func
GroupPowerMonthRankAct
()
{
c
:=
cron
.
New
()
// 每月1号0:01结算发奖
spec
:=
"0 1 0 1 * ?"
_
=
c
.
AddFunc
(
spec
,
func
()
{
var
model
=
domain
.
CreateModelNil
()
if
err
:=
group_power_s
.
CalcGroupPowerMonthRankAct
(
model
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"GroupPowerMonthRankAct fail:%v"
,
err
)
}
})
c
.
Start
()
}
cv/group_power_cv/group_rank.go
View file @
e30947cd
...
...
@@ -40,10 +40,20 @@ type CvGroupPowerRank struct {
Items
[]
CvGroupPowerRankData
`json:"items"`
// 列表
}
// 家族月度排行活动榜单
type
CvGroupPowerRankMontAct
struct
{
MyGroupPower
*
CvGroupPowerRankData
`json:"myGroupPower"`
// 我的家族排名
Items
[]
CvGroupPowerRankData
`json:"items"`
// 列表
MyGroupPowerLast
*
CvGroupPowerRankData
`json:"myGroupPowerLast"`
// 我的家族排名(上月)
ItemsLast
[]
CvGroupPowerRankData
`json:"itemsLast"`
// 列表(上月)
LeftSecond
int64
`json:"leftSecond"`
// 活动倒计时
}
type
CvGroupPowerRankData
struct
{
CvGroupPowerBase
`json:",inline"`
CvGroupPowerGrade
`json:",inline"`
Rank
int
`json:"rank"`
// 排名
Rank
int
`json:"rank"`
// 排名
StarList
[]
*
CvGroupPowerStarData
`json:"starList"`
// 家族贡献top10
}
// 家族之星
...
...
@@ -108,6 +118,6 @@ var GroupPowerGradePrivilegeNum = map[groupPower_e.GroupPowerGrade][]CvPrivilege
{
groupPower_e
.
GroupPowerPrivilegeNameplate
,
1
,
"https://image.whoisamy.shop/hilo/resource/family/nameplate_yellow.png"
},
{
groupPower_e
.
GroupPowerPrivilegeMedal
,
1
,
"https://image.whoisamy.shop/hilo/resource/family/privilege_yellow.png"
},
{
groupPower_e
.
GroupPowerPrivilegeNameplateEdit
,
1
,
"https://image.whoisamy.shop/hilo/resource/family/edit_yellow.png"
},
{
groupPower_e
.
GroupPowerPrivilegeNameplateHeadwear
,
1
,
"https://image.whoisamy.shop/hilo/resource/family/headwear_yellow.png"
},
{
groupPower_e
.
GroupPowerPrivilegeNameplateHeadwear
,
1
,
"https://image.whoisamy.shop/hilo/resource/family/headwear_yellow.png"
},
},
}
domain/model/groupPower_m/groupPower.go
View file @
e30947cd
...
...
@@ -43,6 +43,17 @@ type GroupPowerUser struct {
Role
groupPower_e
.
GroupPowerUserRole
}
type
ActFamilyMonthRankLog
struct
{
Id
uint64
`json:"id"`
Period
string
`json:"period"`
FamilyId
uint64
`json:"family_id"`
RankFamily
int
`json:"rank_family"`
RankUser
int
`json:"rank_user"`
UserId
uint64
`json:"user_id"`
Award
string
`json:"award"`
Area
int
`json:"area"`
}
func
(
gpu
*
GroupPowerUser
)
Get
(
db
*
gorm
.
DB
)
([]
GroupPowerUser
,
error
)
{
rows
:=
make
([]
GroupPowerUser
,
0
)
err
:=
db
.
Where
(
gpu
)
.
Find
(
&
rows
)
.
Error
...
...
@@ -64,6 +75,22 @@ func GetPowerOwner(db *gorm.DB, powerId uint64) (uint64, error) {
return
records
[
0
]
.
UserId
,
nil
}
func
GetPowerOwnerMap
(
model
*
domain
.
Model
,
powerIds
[]
uint64
)
(
map
[
uint64
]
uint64
,
error
)
{
rows
:=
make
([]
GroupPowerUser
,
0
)
if
len
(
powerIds
)
>
0
{
if
err
:=
model
.
DB
()
.
Model
(
&
GroupPowerUser
{})
.
Where
(
"group_power_id IN ? and role = ?"
,
powerIds
,
groupPower_e
.
GroupPowerUserRoleMgr
)
.
Find
(
&
rows
)
.
Error
;
err
!=
nil
{
return
nil
,
err
}
}
result
:=
make
(
map
[
uint64
]
uint64
,
0
)
for
_
,
i
:=
range
rows
{
result
[
i
.
GroupPowerId
]
=
i
.
UserId
}
return
result
,
nil
}
func
GetMyPowerId
(
db
*
gorm
.
DB
,
userId
uint64
)
(
uint64
,
error
)
{
gpu
:=
GroupPowerUser
{
UserId
:
userId
,
Role
:
groupPower_e
.
GroupPowerUserRoleMgr
}
records
,
err
:=
gpu
.
Get
(
db
)
...
...
@@ -707,3 +734,7 @@ func BatchGetGroupPowerUser(model *domain.Model, userIds []mysql.ID) (map[mysql.
}
return
res
,
nil
}
func
CreateActFamilyMonthRankLog
(
model
*
domain
.
Model
,
list
[]
*
ActFamilyMonthRankLog
)
error
{
return
model
.
DB
()
.
CreateInBatches
(
&
list
,
50
)
.
Error
}
domain/model/groupPower_m/group_rank.go
View file @
e30947cd
...
...
@@ -4,6 +4,7 @@ import (
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/resource/mysql"
"gorm.io/gorm"
"hilo-group/_const/enum/groupPower_e"
)
type
GroupPowerExpRank
struct
{
...
...
@@ -14,10 +15,18 @@ type GroupPowerExpRank struct {
// 获取家族经验排行榜
// param limit: 排行榜人数
func
GetGroupPowerExpRank
(
model
*
domain
.
Model
,
beginDate
,
endDate
string
,
limit
int
)
([]
GroupPowerExpRank
,
error
)
{
func
GetGroupPowerExpRank
(
model
*
domain
.
Model
,
beginDate
,
endDate
string
,
limit
int
,
gpStatus
groupPower_e
.
GroupPowerStatus
,
area
int
)
([]
GroupPowerExpRank
,
error
)
{
var
res
[]
GroupPowerExpRank
if
err
:=
model
.
DB
()
.
Table
(
"group_power_day_exp"
)
.
Select
(
"group_power_id,SUM(exp) as exp"
)
.
Where
(
"date BETWEEN ? AND ?"
,
beginDate
,
endDate
)
.
Group
(
"group_power_id"
)
.
Order
(
"exp DESC"
)
.
Limit
(
limit
)
.
Find
(
&
res
)
.
Error
;
err
!=
nil
{
db
:=
model
.
DB
()
.
Table
(
"group_power_day_exp gpd"
)
.
Select
(
"gpd.group_power_id,SUM(gpd.exp) as exp"
)
.
Where
(
"gpd.date BETWEEN ? AND ?"
,
beginDate
,
endDate
)
if
gpStatus
>
0
{
db
=
db
.
Joins
(
"left join group_power gp on gpd.group_power_id = gp.id"
)
.
Where
(
"gp.status = ?"
,
gpStatus
)
if
area
>
0
{
db
=
db
.
Joins
(
"left join group_info gi on gp.group_uid = gi.im_group_id left join res_country rs on gi.country = rs.name"
)
.
Where
(
"rs.area = ?"
,
area
)
}
}
if
err
:=
db
.
Group
(
"gpd.group_power_id"
)
.
Order
(
"exp DESC"
)
.
Limit
(
limit
)
.
Find
(
&
res
)
.
Error
;
err
!=
nil
{
model
.
Log
.
Errorf
(
"GetGroupPowerExpRank fail:%v"
,
err
)
return
res
,
err
}
...
...
domain/model/groupPower_m/group_star.go
View file @
e30947cd
...
...
@@ -104,9 +104,9 @@ func GetGroupPowerMonthStar(model *domain.Model, groupPowerId, userId mysql.ID,
}
// 获取家族之星排行
func
GetGroupPowerMonthStarRank
(
model
*
domain
.
Model
,
groupPowerId
mysql
.
ID
,
_type
groupPower_e
.
GroupPowerStarType
,
offset
,
limit
int
)
([]
*
GroupPowerMonthStar
,
error
)
{
func
GetGroupPowerMonthStarRank
(
model
*
domain
.
Model
,
groupPowerId
mysql
.
ID
,
_type
groupPower_e
.
GroupPowerStarType
,
offset
,
limit
int
,
month
string
)
([]
*
GroupPowerMonthStar
,
error
)
{
var
res
[]
*
GroupPowerMonthStar
month
:=
time
.
Now
()
.
Format
(
"200601"
)
//
month := time.Now().Format("200601")
if
err
:=
model
.
DB
()
.
Model
(
GroupPowerMonthStar
{})
.
Where
(
"month = ? AND group_power_id = ? AND `type` = ?"
,
month
,
groupPowerId
,
_type
)
.
Order
(
"score desc"
)
.
Offset
(
offset
)
.
Limit
(
limit
)
.
Find
(
&
res
)
.
Error
;
err
!=
nil
{
model
.
Log
.
Errorf
(
"GetGroupPowerMonthStarRank fail:%v"
,
err
)
...
...
domain/model/mic_m/mic.go
View file @
e30947cd
...
...
@@ -25,7 +25,7 @@ type UserOnMic struct {
// 允许返回gorm.ErrRecordNotFound
func
GetUserOnMic
(
model
*
domain
.
Model
,
userId
mysql
.
ID
,
tz
timezone_e
.
Timezone
)
(
*
UserOnMic
,
error
)
{
res
:=
new
(
UserOnMic
)
day
:=
time
.
Now
()
.
Format
(
"2006-01-02"
)
day
:=
time
.
Now
()
.
In
(
timezone_e
.
TimezoneLocMap
[
tz
])
.
Format
(
"2006-01-02"
)
if
err
:=
model
.
DB
()
.
Where
(
"date = ? AND user_id = ? AND tz = ?"
,
day
,
userId
,
tz
)
.
First
(
res
)
.
Error
;
err
!=
nil
{
return
nil
,
err
}
...
...
domain/service/event_s/event_init.go
View file @
e30947cd
...
...
@@ -553,6 +553,8 @@ func OnMic() {
}
else
{
model
.
Log
.
Infof
(
"cron micIn IncrUserOnMic success,userId:%v"
,
event
.
UserId
)
}
// 处理活动数据
go
rpc
.
AddActPoint
(
model
,
event
.
UserId
,
1
,
0
)
return
nil
})
}
domain/service/group_power_s/group_power.go
View file @
e30947cd
package
group_power_s
import
(
"encoding/json"
"git.hilo.cn/hilo-common/_const/enum/diamond_e"
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/resource/mysql"
"git.hilo.cn/hilo-common/txop/award_tx"
"git.hilo.cn/hilo-common/utils"
"github.com/jinzhu/now"
"hilo-group/_const/enum/groupPower_e"
"hilo-group/_const/enum/msg_e"
"hilo-group/cv/group_power_cv"
"hilo-group/cv/user_cv"
"hilo-group/domain/cache/user_c"
"hilo-group/domain/event/group_power_ev"
"hilo-group/domain/model/groupPower_m"
"hilo-group/myerr/bizerr"
"time"
)
type
GroupPowerService
struct
{
...
...
@@ -66,3 +78,290 @@ func (s *GroupPowerService) GroupPowerUserLeave(groupPowerId mysql.ID, userId my
})
return
remainSeconds
,
err
}
func
GetGroupPowerRankResp
(
model
*
domain
.
Model
,
beginDate
,
endDate
string
,
userId
uint64
,
gpStatus
groupPower_e
.
GroupPowerStatus
,
area
int
)
(
response
group_power_cv
.
CvGroupPowerRank
,
err
error
)
{
rank
,
err
:=
groupPower_m
.
GetGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
30
,
gpStatus
,
area
)
if
err
!=
nil
{
return
}
var
ids
[]
mysql
.
ID
for
_
,
g
:=
range
rank
{
ids
=
append
(
ids
,
g
.
GroupPowerId
)
}
var
myGroupPower
*
groupPower_m
.
GroupPowerUser
if
userId
>
0
{
myGroupPower
,
err
=
groupPower_m
.
GetGroupPowerUserOrNil
(
model
,
userId
)
if
err
!=
nil
{
return
}
}
if
myGroupPower
!=
nil
{
ids
=
append
(
ids
,
myGroupPower
.
GroupPowerId
)
}
grades
,
err
:=
groupPower_m
.
MGetGroupPowerGrade
(
model
,
ids
)
if
err
!=
nil
{
return
}
groupPowers
,
err
:=
groupPower_m
.
MGetGroupPowerInfoMap
(
model
,
ids
)
if
err
!=
nil
{
return
}
if
myGroupPower
!=
nil
{
myGroupPowerRank
,
err
:=
groupPower_m
.
GetMyGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
myGroupPower
.
GroupPowerId
)
if
err
!=
nil
{
return
response
,
err
}
response
.
MyGroupPower
=
&
group_power_cv
.
CvGroupPowerRankData
{
CvGroupPowerBase
:
group_power_cv
.
CvGroupPowerBase
{
Id
:
myGroupPower
.
GroupPowerId
,
Icon
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Icon
,
Name
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Name
,
Nameplate
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Nameplate
,
},
CvGroupPowerGrade
:
group_power_cv
.
CvGroupPowerGrade
{
Grade
:
grades
[
myGroupPower
.
GroupPowerId
]
.
Grade
,
Exp
:
myGroupPowerRank
.
Exp
,
},
Rank
:
0
,
}
}
for
_
,
v
:=
range
rank
{
if
response
.
MyGroupPower
!=
nil
&&
v
.
GroupPowerId
==
response
.
MyGroupPower
.
Id
{
response
.
MyGroupPower
.
Rank
=
v
.
Rank
}
response
.
Items
=
append
(
response
.
Items
,
group_power_cv
.
CvGroupPowerRankData
{
CvGroupPowerBase
:
group_power_cv
.
CvGroupPowerBase
{
Id
:
v
.
GroupPowerId
,
Icon
:
groupPowers
[
v
.
GroupPowerId
]
.
Icon
,
Name
:
groupPowers
[
v
.
GroupPowerId
]
.
Name
,
Nameplate
:
groupPowers
[
v
.
GroupPowerId
]
.
Nameplate
,
},
CvGroupPowerGrade
:
group_power_cv
.
CvGroupPowerGrade
{
Grade
:
grades
[
v
.
GroupPowerId
]
.
Grade
,
Exp
:
v
.
Exp
,
},
Rank
:
v
.
Rank
,
})
}
if
response
.
MyGroupPower
!=
nil
&&
response
.
MyGroupPower
.
Rank
==
0
{
response
.
MyGroupPower
.
Rank
=
31
// 客户端统一显示30+
}
return
response
,
nil
}
func
GetGroupPowerStar
(
model
*
domain
.
Model
,
groupPowerId
mysql
.
ID
,
_type
groupPower_e
.
GroupPowerStarType
,
offset
,
limit
int
,
month
string
)
([]
*
group_power_cv
.
CvGroupPowerStarData
,
error
)
{
rank
,
err
:=
groupPower_m
.
GetGroupPowerMonthStarRank
(
model
,
groupPowerId
,
_type
,
offset
,
limit
,
month
)
if
err
!=
nil
{
return
nil
,
err
}
//var response []group_power_cv.CvGroupPowerStarData
response
:=
make
([]
*
group_power_cv
.
CvGroupPowerStarData
,
0
)
var
userIds
[]
mysql
.
ID
for
_
,
row
:=
range
rank
{
userIds
=
append
(
userIds
,
row
.
UserId
)
}
users
,
err
:=
user_c
.
GetUserTinyMap
(
model
,
userIds
,
true
)
//users, err := user_m.GetUserMapByIds(model, userIds)
for
_
,
row
:=
range
rank
{
user
:=
users
[
row
.
UserId
]
score
:=
row
.
Score
if
_type
==
groupPower_e
.
GroupPowerStarTypeActive
{
score
=
score
/
60
}
if
score
<=
0
{
continue
}
response
=
append
(
response
,
&
group_power_cv
.
CvGroupPowerStarData
{
User
:
user_cv
.
CvUserTiny
{
Id
:
user
.
ID
,
ExternalId
:
user
.
ExternalId
,
Code
:
user
.
Code
,
Nick
:
user
.
Nick
,
Avatar
:
user
.
Avatar
,
},
Score
:
score
,
})
}
return
response
,
nil
}
func
CalcGroupPowerMonthRankAct
(
model
*
domain
.
Model
)
error
{
lastDayTime
:=
time
.
Now
()
.
AddDate
(
0
,
0
,
-
1
)
_now
:=
now
.
New
(
lastDayTime
)
calcMonth
:=
_now
.
BeginningOfMonth
()
.
Format
(
utils
.
MONTH_FORMAT
)
beginDate
,
endDate
:=
_now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
),
_now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
return
DoCalcGroupPowerMonthRankAct
(
model
,
calcMonth
,
beginDate
,
endDate
)
}
func
DoCalcGroupPowerMonthRankAct
(
model
*
domain
.
Model
,
calcMonth
,
beginDate
,
endDate
string
)
error
{
areaList
:=
[]
int
{
1
,
2
}
for
_
,
area
:=
range
areaList
{
// 计算获奖
model
:=
domain
.
CreateModelContext
(
model
.
MyContext
)
response
,
err
:=
GetGroupPowerRankResp
(
model
,
beginDate
,
endDate
,
0
,
groupPower_e
.
GroupPowerUserHas
,
area
)
if
err
!=
nil
{
return
err
}
powerIds
:=
make
([]
uint64
,
0
,
len
(
response
.
Items
))
for
i
,
v
:=
range
response
.
Items
{
powerIds
=
append
(
powerIds
,
v
.
Id
)
response
.
Items
[
i
]
.
StarList
,
err
=
GetGroupPowerStar
(
model
,
v
.
Id
,
groupPower_e
.
GroupPowerStarTypeFamous
,
0
,
10
,
time
.
Now
()
.
Format
(
utils
.
COMPACT_MONTH_FORMAT
))
if
err
!=
nil
{
return
err
}
}
// 奖励、日志
awardList
,
logList
,
err
:=
getAwardAndLogList
(
model
,
powerIds
,
response
.
Items
,
calcMonth
,
area
)
if
err
!=
nil
{
return
err
}
err
=
model
.
Transaction
(
func
(
model
*
domain
.
Model
)
error
{
// log
err
=
groupPower_m
.
CreateActFamilyMonthRankLog
(
model
,
logList
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct area:%d, err:%+v"
,
area
,
err
)
return
err
}
// award
for
_
,
v
:=
range
awardList
{
err
=
award_tx
.
SendUserAward
(
model
,
v
,
diamond_e
.
GeneralActivity
,
msg_e
.
MgrSendDiamondProperty
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct award:%+v, err:%+v"
,
v
,
err
)
return
err
}
}
return
nil
})
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct area:%d, err:%+v"
,
area
,
err
)
return
err
}
}
return
nil
}
func
getAwardAndLogList
(
model
*
domain
.
Model
,
powerIds
[]
uint64
,
items
[]
group_power_cv
.
CvGroupPowerRankData
,
calcMonth
string
,
area
int
)
([]
*
award_tx
.
UserAward
,
[]
*
groupPower_m
.
ActFamilyMonthRankLog
,
error
)
{
// 读奖励配置
confMap
:=
CalcGroupPowerMonthRankActConf
()
awardList
:=
make
([]
*
award_tx
.
UserAward
,
0
,
50
)
// 奖励
ownerMap
,
err
:=
groupPower_m
.
GetPowerOwnerMap
(
model
,
powerIds
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
// log list
logList
:=
make
([]
*
groupPower_m
.
ActFamilyMonthRankLog
,
0
,
50
)
for
_
,
v
:=
range
items
{
teamRank
:=
0
if
v
.
Rank
>=
1
&&
v
.
Rank
<=
3
{
teamRank
=
v
.
Rank
}
else
if
v
.
Rank
>=
4
&&
v
.
Rank
<=
10
{
teamRank
=
4
}
else
{
break
}
ownerId
,
ok
:=
ownerMap
[
v
.
Id
]
if
!
ok
||
ownerId
<=
0
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct 获取势力主错误 familyId:%d"
,
v
.
Id
)
return
nil
,
nil
,
bizerr
.
InvalidParameter
}
uRankConfMap
,
tCOk
:=
confMap
[
teamRank
]
if
!
tCOk
{
break
}
// 家族长奖励
oAward
,
aOk
:=
uRankConfMap
[
0
]
if
!
aOk
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct 配置错误:%v"
,
confMap
)
return
nil
,
nil
,
bizerr
.
InvalidParameter
}
oAwardJ
,
_
:=
json
.
Marshal
(
oAward
)
logList
=
append
(
logList
,
&
groupPower_m
.
ActFamilyMonthRankLog
{
Period
:
calcMonth
,
FamilyId
:
v
.
Id
,
RankFamily
:
v
.
Rank
,
RankUser
:
0
,
UserId
:
ownerId
,
Award
:
string
(
oAwardJ
),
Area
:
area
,
})
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
UserId
:
ownerId
,
MedalId
:
oAward
.
MedalId
,
MedalDuration
:
oAward
.
MedalDay
,
Diamond
:
oAward
.
Diamond
,
NobleLevel
:
oAward
.
Noble
,
NobleDuration
:
oAward
.
NobleDay
,
HeaddressId
:
oAward
.
HeaddressId
,
HeaddressDuration
:
oAward
.
HeaddressDay
})
// 家族成员奖励
for
i
,
m
:=
range
v
.
StarList
{
uRank
:=
i
+
1
confIdx
:=
9
if
uRank
>=
1
&&
uRank
<=
3
{
confIdx
=
1
}
else
if
uRank
>=
4
&&
uRank
<=
10
{
confIdx
=
4
}
mAward
,
aOk
:=
uRankConfMap
[
confIdx
]
if
!
aOk
{
break
}
mAwardJ
,
_
:=
json
.
Marshal
(
mAward
)
logList
=
append
(
logList
,
&
groupPower_m
.
ActFamilyMonthRankLog
{
Period
:
calcMonth
,
FamilyId
:
v
.
Id
,
RankFamily
:
v
.
Rank
,
RankUser
:
uRank
,
UserId
:
m
.
User
.
Id
,
Award
:
string
(
mAwardJ
),
Area
:
area
,
})
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
UserId
:
m
.
User
.
Id
,
MedalId
:
mAward
.
MedalId
,
MedalDuration
:
mAward
.
MedalDay
,
Diamond
:
mAward
.
Diamond
,
NobleLevel
:
mAward
.
Noble
,
NobleDuration
:
mAward
.
NobleDay
,
HeaddressId
:
mAward
.
HeaddressId
,
HeaddressDuration
:
mAward
.
HeaddressDay
})
}
}
return
awardList
,
logList
,
nil
}
// 奖励配置
type
awardConf
struct
{
MedalId
uint64
MedalDay
uint32
Diamond
uint32
Noble
uint32
NobleDay
uint32
HeaddressId
uint64
HeaddressDay
int
}
func
CalcGroupPowerMonthRankActConf
()
map
[
int
]
map
[
int
]
*
awardConf
{
return
map
[
int
]
map
[
int
]
*
awardConf
{
1
:
{
0
:
{
MedalId
:
5211
,
MedalDay
:
30
,
Diamond
:
320000
,
Noble
:
5
,
NobleDay
:
15
},
1
:
{
MedalId
:
5251
,
MedalDay
:
30
,
Diamond
:
120000
,
Noble
:
5
,
NobleDay
:
7
,
HeaddressId
:
2121
,
HeaddressDay
:
30
},
4
:
{
HeaddressId
:
2121
,
HeaddressDay
:
30
},
},
2
:
{
0
:
{
MedalId
:
5221
,
MedalDay
:
30
,
Diamond
:
220000
,
Noble
:
4
,
NobleDay
:
15
},
1
:
{
MedalId
:
5261
,
MedalDay
:
30
,
Diamond
:
100000
,
Noble
:
4
,
NobleDay
:
7
,
HeaddressId
:
2131
,
HeaddressDay
:
30
},
4
:
{
HeaddressId
:
2131
,
HeaddressDay
:
30
},
},
3
:
{
0
:
{
MedalId
:
5231
,
MedalDay
:
30
,
Diamond
:
120000
,
Noble
:
5
,
NobleDay
:
5
},
1
:
{
MedalId
:
5271
,
MedalDay
:
30
,
Diamond
:
70000
,
HeaddressId
:
2141
,
HeaddressDay
:
30
},
4
:
{
HeaddressId
:
2141
,
HeaddressDay
:
30
},
},
4
:
{
0
:
{
MedalId
:
5241
,
MedalDay
:
30
},
1
:
{
MedalId
:
5281
,
MedalDay
:
30
,
HeaddressId
:
2151
,
HeaddressDay
:
30
},
},
}
}
domain/service/group_s/group_op.go
View file @
e30947cd
...
...
@@ -5,6 +5,7 @@ import (
"encoding/json"
"fmt"
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/mylogrus"
"git.hilo.cn/hilo-common/resource/config"
"git.hilo.cn/hilo-common/resource/mysql"
...
...
@@ -41,6 +42,10 @@ func (s *GroupService) CreateGroup(userId uint64, g *group_m.GroupInfo) error {
if
err
:=
group_m
.
CreateGroupRole
(
model
,
g
.
ImGroupId
,
userId
,
group_e
.
GROUP_OWNER
);
err
!=
nil
{
return
err
}
// 新房间标记成trtc房间
if
err
:=
group_m
.
InitTRTC
(
model
,
g
.
ImGroupId
);
err
!=
nil
{
model
.
Log
.
Errorf
(
"CreateGroup g:%+v, err:%v"
,
g
,
err
)
}
return
nil
})
}
...
...
@@ -117,9 +122,10 @@ func (s *GroupService) LeaveGroupMember(model *domain.Model, groupId string, use
}
//进入房间, 返回channelId, err
func
(
s
*
GroupService
)
GroupIn
(
userId
uint64
,
externalId
string
,
groupUuid
string
,
password
,
imei
,
ip
string
,
provider
group_e
.
GroupProvider
)
(
string
,
string
,
error
)
{
func
(
s
*
GroupService
)
GroupIn
(
userId
uint64
,
externalId
string
,
groupUuid
string
,
password
,
imei
,
ip
string
,
provider
group_e
.
GroupProvider
,
roomId
int64
)
(
string
,
string
,
error
)
{
var
channelId
string
var
token
string
var
rideId
uint64
err
:=
s
.
svc
.
Transactional
(
func
()
error
{
//检查群组是否存在, 没有真正的domel,直接service上怼
model
:=
domain
.
CreateModel
(
s
.
svc
.
CtxAndDb
)
...
...
@@ -160,6 +166,11 @@ func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid strin
}
// 不是超管 且 用户是否在群的黑名单中
if
!
isM
&&
group_m
.
InGroupBlackList
(
model
,
groupUuid
,
imei
,
ip
,
userId
)
{
// 特殊处理的拉黑列表
blackMap
:=
map
[
string
]
uint64
{
"HTGS#a17058241"
:
3058361
}
if
bUid
,
ok
:=
blackMap
[
groupUuid
];
ok
&&
bUid
==
userId
{
return
bizerr
.
InBlacklist
}
if
svip
.
SvipLevel
<
6
{
// svip6暂时不判断GroupBlackList
return
bizerr
.
InBlacklist
}
...
...
@@ -245,6 +256,7 @@ func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid strin
NobleLevel
:
nobleLevel
,
Svip
:
rpc
.
CopySimpleSvip
(
svip
),
}
rideId
=
r
.
RideId
buf
,
err
:=
json
.
Marshal
(
r
)
if
err
==
nil
{
...
...
@@ -276,6 +288,7 @@ func (s *GroupService) GroupIn(userId uint64, externalId string, groupUuid strin
if
err
!=
nil
{
return
""
,
""
,
err
}
else
{
go
dealActDataAfterEnterRoom
(
s
.
svc
.
MyContext
,
userId
,
rideId
,
roomId
)
return
channelId
,
token
,
nil
}
}
...
...
@@ -453,3 +466,11 @@ func (s *GroupService) GroupClearScreenByMgr(groupId string, userId uint64) erro
signal_s
.
SendSignalMsg
(
model
,
groupId
,
systemMsg
,
false
)
return
nil
}
func
dealActDataAfterEnterRoom
(
myContext
*
mycontext
.
MyContext
,
userId
,
rideId
uint64
,
roomId
int64
)
{
defer
utils
.
CheckGoPanic
()
if
rideId
==
1261
{
// 处理活动数据
go
rpc
.
AddActPoint
(
domain
.
CreateModelContext
(
myContext
),
userId
,
5
,
roomId
)
}
}
mysql/group_power_month_act.sql
0 → 100644
View file @
e30947cd
CREATE
TABLE
`act_family_month_rank_log`
(
`id`
bigint
unsigned
NOT
NULL
AUTO_INCREMENT
COMMENT
'id'
,
`period`
varchar
(
20
)
NOT
NULL
DEFAULT
''
COMMENT
'月份'
,
`family_id`
bigint
unsigned
NOT
NULL
COMMENT
'家族id'
,
`rank_family`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'家族排名'
,
`rank_user`
int
unsigned
NOT
NULL
DEFAULT
'0'
COMMENT
'用户在家族中的家族排名'
,
`user_id`
bigint
unsigned
NOT
NULL
COMMENT
'id'
,
`award`
varchar
(
500
)
NOT
NULL
DEFAULT
''
COMMENT
'获得的奖励'
,
`created_time`
timestamp
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
,
`updated_time`
timestamp
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`period`
(
`period`
,
`family_id`
,
`rank_user`
),
KEY
`user_idx`
(
`user_id`
)
USING
BTREE
,
KEY
`created_time`
(
`created_time`
)
USING
BTREE
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_0900_ai_ci
COMMENT
=
'家族月度排行发奖日志'
;
ALTER
TABLE
hilo
.
act_family_month_rank_log
ADD
area
TINYINT
DEFAULT
0
NOT
NULL
COMMENT
'区域1.阿语区2.非阿语区'
;
route/group_power_r/group_rank.go
View file @
e30947cd
...
...
@@ -12,6 +12,7 @@ import (
"hilo-group/cv/user_cv"
"hilo-group/domain/model/groupPower_m"
"hilo-group/domain/model/user_m"
"hilo-group/domain/service/group_power_s"
"hilo-group/myerr/bizerr"
"hilo-group/req"
"hilo-group/resp"
...
...
@@ -46,74 +47,97 @@ func GroupPowerRank(c *gin.Context) (*mycontext.MyContext, error) {
beginDate
,
endDate
=
now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
),
now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
}
var
model
=
domain
.
CreateModelContext
(
myContext
)
r
ank
,
err
:=
groupPower_m
.
GetGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
3
0
)
r
esponse
,
err
:=
group_power_s
.
GetGroupPowerRankResp
(
model
,
beginDate
,
endDate
,
userId
,
0
,
0
)
if
err
!=
nil
{
return
myContext
,
err
}
var
ids
[]
mysql
.
ID
for
_
,
g
:=
range
rank
{
ids
=
append
(
ids
,
g
.
GroupPowerId
)
}
response
:=
group_power_cv
.
CvGroupPowerRank
{}
myGroupPower
,
err
:=
groupPower_m
.
GetGroupPowerUserOrNil
(
model
,
userId
)
if
err
!=
nil
{
return
myContext
,
err
}
if
myGroupPower
!=
nil
{
ids
=
append
(
ids
,
myGroupPower
.
GroupPowerId
)
}
grades
,
err
:=
groupPower_m
.
MGetGroupPowerGrade
(
model
,
ids
)
resp
.
ResponseOk
(
c
,
response
)
return
myContext
,
nil
}
// @Tags 国家势力
// @Summary 家族榜单-活动
// @Success 200 {object} group_power_cv.CvGroupPowerRankMontAct
// @Router /v1/h5/groupPower/rank/month [get]
func
GroupPowerMonthRankAct
(
c
*
gin
.
Context
)
(
*
mycontext
.
MyContext
,
error
)
{
myContext
:=
mycontext
.
CreateMyContext
(
c
.
Keys
)
userId
,
err
:=
req
.
GetUserId
(
c
)
if
err
!=
nil
{
return
myContext
,
err
}
groupPowers
,
err
:=
groupPower_m
.
MGetGroupPowerInfoMap
(
model
,
ids
)
var
model
=
domain
.
CreateModelContext
(
myContext
)
// 国家区域
var
area
int
// 我的家族
myGroupPower
,
err
:=
groupPower_m
.
GetGroupPowerUserOrNil
(
model
,
userId
)
if
err
!=
nil
{
return
myContext
,
err
}
if
myGroupPower
!=
nil
{
myGroupPowerRank
,
err
:=
groupPower_m
.
GetMyGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
myGroupPower
.
GroupPowerId
)
if
myGroupPower
!=
nil
&&
myGroupPower
.
GroupPowerId
>
0
{
//获取势力主
mgrUserId
,
err
:=
groupPower_m
.
GetGroupPowerMgr
(
model
,
myGroupPower
.
GroupPowerId
)
if
err
!=
nil
{
return
myContext
,
err
}
response
.
MyGroupPower
=
&
group_power_cv
.
CvGroupPowerRankData
{
CvGroupPowerBase
:
group_power_cv
.
CvGroupPowerBase
{
Id
:
myGroupPower
.
GroupPowerId
,
Icon
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Icon
,
Name
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Name
,
Nameplate
:
groupPowers
[
myGroupPower
.
GroupPowerId
]
.
Nameplate
,
},
CvGroupPowerGrade
:
group_power_cv
.
CvGroupPowerGrade
{
Grade
:
grades
[
myGroupPower
.
GroupPowerId
]
.
Grade
,
Exp
:
myGroupPowerRank
.
Exp
,
},
Rank
:
0
,
_
,
area
,
err
=
user_m
.
GetUserCountryArea
(
model
,
mgrUserId
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"GroupPowerMonthRankAct 获取国家资源错误 userId:%d, err:%v"
,
userId
,
err
)
return
myContext
,
err
}
}
for
_
,
v
:=
range
rank
{
if
response
.
MyGroupPower
!=
nil
&&
v
.
GroupPowerId
==
response
.
MyGroupPower
.
Id
{
response
.
MyGroupPower
.
Rank
=
v
.
Rank
if
area
==
0
{
_
,
area
,
err
=
user_m
.
GetUserCountryArea
(
model
,
userId
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"GroupPowerMonthRankAct 获取国家资源错误 userId:%d, err:%v"
,
userId
,
err
)
return
myContext
,
err
}
response
.
Items
=
append
(
response
.
Items
,
group_power_cv
.
CvGroupPowerRankData
{
CvGroupPowerBase
:
group_power_cv
.
CvGroupPowerBase
{
Id
:
v
.
GroupPowerId
,
Icon
:
groupPowers
[
v
.
GroupPowerId
]
.
Icon
,
Name
:
groupPowers
[
v
.
GroupPowerId
]
.
Name
,
Nameplate
:
groupPowers
[
v
.
GroupPowerId
]
.
Nameplate
,
},
CvGroupPowerGrade
:
group_power_cv
.
CvGroupPowerGrade
{
Grade
:
grades
[
v
.
GroupPowerId
]
.
Grade
,
Exp
:
v
.
Exp
,
},
Rank
:
v
.
Rank
,
})
}
if
response
.
MyGroupPower
!=
nil
&&
response
.
MyGroupPower
.
Rank
==
0
{
response
.
MyGroupPower
.
Rank
=
31
// 客户端统一显示30+
// 这个月
beginDate
,
endDate
:=
now
.
BeginningOfMonth
()
.
Format
(
utils
.
DATE_FORMAT
),
now
.
EndOfMonth
()
.
Format
(
utils
.
DATE_FORMAT
)
response
,
err
:=
GroupPowerMonthRankActByMonth
(
model
,
userId
,
beginDate
,
endDate
,
time
.
Now
()
.
Format
(
utils
.
COMPACT_MONTH_FORMAT
),
area
)
if
err
!=
nil
{
return
myContext
,
err
}
resp
.
ResponseOk
(
c
,
response
)
// 上月
lastMonthStart
:=
utils
.
GetLastMonthStart
(
time
.
Now
())
lastTime
:=
now
.
New
(
lastMonthStart
)
beginDateLast
,
endDateLast
:=
lastTime
.
BeginningOfMonth
()
.
Format
(
utils
.
DATE_FORMAT
),
lastTime
.
EndOfMonth
()
.
Format
(
utils
.
DATE_FORMAT
)
responseLast
,
err
:=
GroupPowerMonthRankActByMonth
(
model
,
userId
,
beginDateLast
,
endDateLast
,
lastMonthStart
.
Format
(
utils
.
COMPACT_MONTH_FORMAT
),
area
)
if
err
!=
nil
{
return
myContext
,
err
}
res
:=
&
group_power_cv
.
CvGroupPowerRankMontAct
{
MyGroupPower
:
response
.
MyGroupPower
,
Items
:
response
.
Items
,
MyGroupPowerLast
:
responseLast
.
MyGroupPower
,
ItemsLast
:
responseLast
.
Items
,
LeftSecond
:
now
.
EndOfMonth
()
.
Unix
()
-
time
.
Now
()
.
Unix
(),
}
resp
.
ResponseOk
(
c
,
res
)
return
myContext
,
nil
}
func
GroupPowerMonthRankActByMonth
(
model
*
domain
.
Model
,
userId
uint64
,
beginDate
,
endDate
,
month
string
,
area
int
)
(
response
group_power_cv
.
CvGroupPowerRank
,
err
error
)
{
response
,
err
=
group_power_s
.
GetGroupPowerRankResp
(
model
,
beginDate
,
endDate
,
userId
,
groupPower_e
.
GroupPowerUserHas
,
area
)
if
err
!=
nil
{
return
response
,
err
}
if
response
.
MyGroupPower
!=
nil
{
response
.
MyGroupPower
.
StarList
,
err
=
group_power_s
.
GetGroupPowerStar
(
model
,
response
.
MyGroupPower
.
Id
,
groupPower_e
.
GroupPowerStarTypeFamous
,
0
,
10
,
month
)
}
if
err
!=
nil
{
return
response
,
err
}
for
i
,
v
:=
range
response
.
Items
{
response
.
Items
[
i
]
.
StarList
,
err
=
group_power_s
.
GetGroupPowerStar
(
model
,
v
.
Id
,
groupPower_e
.
GroupPowerStarTypeFamous
,
0
,
10
,
month
)
if
err
!=
nil
{
return
response
,
err
}
}
return
response
,
nil
}
// @Tags 国家势力
// @Summary 家族日周月榜单top3
// @Param token header string true "token"
...
...
@@ -135,7 +159,7 @@ func GroupPowerRankTop(c *gin.Context) (*mycontext.MyContext, error) {
beginDate
,
endDate
=
now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
),
now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
}
var
model
=
domain
.
CreateModelContext
(
myContext
)
rank
,
err
:=
groupPower_m
.
GetGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
3
)
rank
,
err
:=
groupPower_m
.
GetGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
3
,
0
,
0
)
if
err
!=
nil
{
return
myContext
,
err
}
...
...
@@ -201,38 +225,12 @@ func GroupPowerStar(c *gin.Context) (*mycontext.MyContext, error) {
if
param
.
PageSize
<=
0
{
param
.
PageSize
=
30
}
var
model
=
domain
.
CreateModelContext
(
myContext
)
offset
,
limit
:=
(
param
.
PageIndex
-
1
)
*
param
.
PageSize
,
param
.
PageSize
rank
,
err
:=
groupPower_m
.
GetGroupPowerMonthStarRank
(
model
,
param
.
GroupPowerId
,
param
.
Type
,
offset
,
limit
)
var
model
=
domain
.
CreateModelContext
(
myContext
)
response
,
err
:=
group_power_s
.
GetGroupPowerStar
(
model
,
param
.
GroupPowerId
,
param
.
Type
,
offset
,
limit
,
time
.
Now
()
.
Format
(
utils
.
COMPACT_MONTH_FORMAT
))
if
err
!=
nil
{
return
myContext
,
err
}
var
response
[]
group_power_cv
.
CvGroupPowerStarData
var
userIds
[]
mysql
.
ID
for
_
,
row
:=
range
rank
{
userIds
=
append
(
userIds
,
row
.
UserId
)
}
users
,
err
:=
user_m
.
GetUserMapByIds
(
model
,
userIds
)
for
_
,
row
:=
range
rank
{
user
:=
users
[
row
.
UserId
]
score
:=
row
.
Score
if
param
.
Type
==
groupPower_e
.
GroupPowerStarTypeActive
{
score
=
score
/
60
}
if
score
<=
0
{
continue
}
response
=
append
(
response
,
group_power_cv
.
CvGroupPowerStarData
{
User
:
user_cv
.
CvUserTiny
{
Id
:
user
.
ID
,
ExternalId
:
user
.
ExternalId
,
Code
:
user
.
Code
,
Nick
:
user
.
Nick
,
Avatar
:
user
.
Avatar
,
},
Score
:
score
,
})
}
resp
.
ResponsePageBaseOk
(
c
,
response
,
0
,
false
)
return
myContext
,
nil
}
...
...
route/group_r/group_op.go
View file @
e30947cd
...
...
@@ -14,6 +14,7 @@ import (
"git.hilo.cn/hilo-common/utils"
"github.com/gin-gonic/gin"
uuid
"github.com/satori/go.uuid"
"github.com/spf13/cast"
"gorm.io/gorm"
"hilo-group/_const/enum/diamond_e"
"hilo-group/_const/enum/group_e"
...
...
@@ -1755,14 +1756,21 @@ func GroupIn(c *gin.Context) (*mycontext.MyContext, error) {
if
group_m
.
IsUseTRTC
(
model
,
groupId
)
{
provider
=
group_e
.
GroupProvider_TRTC
}
else
{
if
time
.
Now
()
.
Unix
()
>
1683820800
{
// todo 1683820800=5月2号,等过审再修改
//dayMaxCovertNum := int64(20)
//numKey := rediskey.GetConvertToTRTCNum()
//covertNum, err := redisCli.GetCacheInt64(numKey)
//if time.Now().Unix() > 1682499704 && err == nil && covertNum <= dayMaxCovertNum {
if
time
.
Now
()
.
Unix
()
>
1682499704
{
roomUser
,
err
:=
group_m
.
GetRoomOnlineUser
(
myContext
,
groupId
)
if
err
==
nil
&&
roomUser
.
Total
==
0
{
//newNum, err := redisCli.IncrNumExpire(numKey, 1, time.Hour*24)
//if err == nil && newNum <= dayMaxCovertNum {
if
err
:=
group_m
.
InitTRTC
(
model
,
groupId
);
err
!=
nil
{
return
myContext
,
err
}
provider
=
group_e
.
GroupProvider_TRTC
model
.
Log
.
Infof
(
"auto shift trtc room groupId:%v,%+v-%v"
,
groupId
,
roomUser
,
err
)
//}
}
}
}
...
...
@@ -1777,7 +1785,7 @@ func GroupIn(c *gin.Context) (*mycontext.MyContext, error) {
}
}
if
channelId
,
token
,
err
:=
group_s
.
NewGroupService
(
myContext
)
.
GroupIn
(
userId
,
externalId
,
groupId
,
password
,
imei
,
ip
,
provider
);
err
!=
nil
{
if
channelId
,
token
,
err
:=
group_s
.
NewGroupService
(
myContext
)
.
GroupIn
(
userId
,
externalId
,
groupId
,
password
,
imei
,
ip
,
provider
,
gi
.
Id
);
err
!=
nil
{
return
myContext
,
err
}
else
{
// 加入房间缓存
...
...
@@ -1812,9 +1820,9 @@ func GroupIn(c *gin.Context) (*mycontext.MyContext, error) {
}
// 判断是否需要执行游戏逻辑
if
enterType
!=
""
&&
gameCode
!=
""
{
traceId
:=
c
.
Writer
.
Header
()
.
Get
(
mycontext
.
TRACEID
)
traceId
,
_
:=
c
.
Get
(
mycontext
.
TRACEID
)
token
:=
c
.
Writer
.
Header
()
.
Get
(
mycontext
.
TOKEN
)
err
:=
game_c
.
SetAutoMathEnterRoom
(
userId
,
gi
.
ImGroupId
,
traceId
,
token
,
enterType
,
gameCode
)
err
:=
game_c
.
SetAutoMathEnterRoom
(
userId
,
gi
.
ImGroupId
,
cast
.
ToString
(
traceId
)
,
token
,
enterType
,
gameCode
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"GroupIn cache.SetAutoMathEnterRoom userId:%v, imGroupId:%v, err:%v"
,
userId
,
gi
.
ImGroupId
,
err
)
}
...
...
route/router.go
View file @
e30947cd
...
...
@@ -146,6 +146,7 @@ func InitRouter() *gin.Engine {
h5GroupPower
:=
v1
.
Group
(
"/h5/groupPower"
)
{
h5GroupPower
.
GET
(
"/grade/detail"
,
wrapper
(
group_power_r
.
GroupPowerGradeDetail
))
h5GroupPower
.
GET
(
"/rank/month"
,
wrapper
(
group_power_r
.
GroupPowerMonthRankAct
))
}
charge
:=
v1
.
Group
(
"/charge"
)
...
...
test/group_power_test.go
View file @
e30947cd
...
...
@@ -3,9 +3,13 @@ package test
import
(
"fmt"
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/utils"
"github.com/jinzhu/now"
"hilo-group/domain/model/groupPower_m"
"hilo-group/domain/model/group_m"
"hilo-group/domain/service/group_power_s"
"testing"
"time"
)
func
TestGetAllGroupPowerOwner
(
t
*
testing
.
T
)
{
...
...
@@ -23,3 +27,11 @@ func TestIsUseTRTC(t *testing.T) {
fmt
.
Println
(
"true--------------"
)
}
}
func
TestDoCalcGroupPowerMonthRankAct
(
t
*
testing
.
T
)
{
lastDayTime
:=
time
.
Now
()
.
AddDate
(
0
,
0
,
-
1
)
_now
:=
now
.
New
(
lastDayTime
)
calcMonth
:=
_now
.
BeginningOfMonth
()
.
Format
(
utils
.
MONTH_FORMAT
)
beginDate
,
endDate
:=
_now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
),
_now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
_
=
group_power_s
.
DoCalcGroupPowerMonthRankAct
(
domain
.
CreateModelNil
(),
calcMonth
,
beginDate
,
endDate
)
}
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