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
a8136eba
Commit
a8136eba
authored
Apr 19, 2023
by
chenweijian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
家族活动
parent
989d4dee
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
131 additions
and
78 deletions
+131
-78
group_rank.go
cv/group_power_cv/group_rank.go
+3
-2
group_power.go
domain/service/group_power_s/group_power.go
+106
-0
group_rank.go
route/group_power_r/group_rank.go
+21
-76
router.go
route/router.go
+1
-0
No files found.
cv/group_power_cv/group_rank.go
View file @
a8136eba
...
...
@@ -44,6 +44,7 @@ type CvGroupPowerRankData struct {
CvGroupPowerBase
`json:",inline"`
CvGroupPowerGrade
`json:",inline"`
Rank
int
`json:"rank"`
// 排名
StarList
[]
*
CvGroupPowerStarData
`json:"starList"`
// 家族贡献top10
}
// 家族之星
...
...
@@ -108,6 +109,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/service/group_power_s/group_power.go
View file @
a8136eba
...
...
@@ -4,8 +4,12 @@ import (
"git.hilo.cn/hilo-common/domain"
"git.hilo.cn/hilo-common/mycontext"
"git.hilo.cn/hilo-common/resource/mysql"
"hilo-group/_const/enum/groupPower_e"
"hilo-group/cv/group_power_cv"
"hilo-group/cv/user_cv"
"hilo-group/domain/event/group_power_ev"
"hilo-group/domain/model/groupPower_m"
"hilo-group/domain/model/user_m"
)
type
GroupPowerService
struct
{
...
...
@@ -66,3 +70,105 @@ func (s *GroupPowerService) GroupPowerUserLeave(groupPowerId mysql.ID, userId my
})
return
remainSeconds
,
err
}
func
GetGroupPowerRankResp
(
model
*
domain
.
Model
,
beginDate
,
endDate
string
,
userId
uint64
)
(
response
group_power_cv
.
CvGroupPowerRank
,
err
error
)
{
rank
,
err
:=
groupPower_m
.
GetGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
30
)
if
err
!=
nil
{
return
}
var
ids
[]
mysql
.
ID
for
_
,
g
:=
range
rank
{
ids
=
append
(
ids
,
g
.
GroupPowerId
)
}
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
)
([]
*
group_power_cv
.
CvGroupPowerStarData
,
error
)
{
rank
,
err
:=
groupPower_m
.
GetGroupPowerMonthStarRank
(
model
,
groupPowerId
,
_type
,
offset
,
limit
)
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_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
}
route/group_power_r/group_rank.go
View file @
a8136eba
...
...
@@ -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,69 +47,39 @@ 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
,
30
)
r
esponse
,
err
:=
group_power_s
.
GetGroupPowerRankResp
(
model
,
beginDate
,
endDate
,
userId
)
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
)
resp
.
ResponseOk
(
c
,
response
)
return
myContext
,
nil
}
// @Tags 国家势力
// @Summary 家族榜单-活动
// @Success 200 {object} []group_power_cv.CvGroupPowerRank
// @Router /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
}
if
myGroupPower
!=
nil
{
ids
=
append
(
ids
,
myGroupPower
.
GroupPowerId
)
}
grades
,
err
:=
groupPower_m
.
MGetGroupPowerGrade
(
model
,
ids
)
beginDate
,
endDate
:=
now
.
BeginningOfMonth
()
.
Format
(
"2006-01-02"
),
now
.
EndOfMonth
()
.
Format
(
"2006-01-02"
)
var
model
=
domain
.
CreateModelContext
(
myContext
)
response
,
err
:=
group_power_s
.
GetGroupPowerRankResp
(
model
,
beginDate
,
endDate
,
userId
)
if
err
!=
nil
{
return
myContext
,
err
}
groupPowers
,
err
:=
groupPower_m
.
MGetGroupPowerInfoMap
(
model
,
ids
)
response
.
MyGroupPower
.
StarList
,
err
=
group_power_s
.
GetGroupPowerStar
(
model
,
response
.
MyGroupPower
.
Id
,
groupPower_e
.
GroupPowerStarTypeFamous
,
0
,
10
)
if
err
!=
nil
{
return
myContext
,
err
}
if
myGroupPower
!=
nil
{
myGroupPowerRank
,
err
:=
groupPower_m
.
GetMyGroupPowerExpRank
(
model
,
beginDate
,
endDate
,
myGroupPower
.
GroupPowerId
)
for
i
,
v
:=
range
response
.
Items
{
response
.
Items
[
i
]
.
StarList
,
err
=
group_power_s
.
GetGroupPowerStar
(
model
,
v
.
Id
,
groupPower_e
.
GroupPowerStarTypeFamous
,
0
,
10
)
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
,
}
}
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+
}
resp
.
ResponseOk
(
c
,
response
)
return
myContext
,
nil
...
...
@@ -201,38 +172,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
)
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/router.go
View file @
a8136eba
...
...
@@ -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"
)
...
...
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