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
785c265a
Commit
785c265a
authored
Apr 20, 2023
by
chenweijian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
家族贡献排行自动发奖
parent
18c512d7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
87 additions
and
61 deletions
+87
-61
group_power.go
domain/service/group_power_s/group_power.go
+87
-61
No files found.
domain/service/group_power_s/group_power.go
View file @
785c265a
...
...
@@ -202,45 +202,42 @@ func CalcGroupPowerMonthRankAct(model *domain.Model) error {
return
err
}
}
// 读奖励配置
type
award
struct
{
MedalId
uint64
MedalDay
uint32
Diamond
uint32
Noble
uint32
NobleDay
uint32
HeaddressId
uint64
HeaddressDay
int
}
confMap
:=
map
[
int
]
map
[
int
]
*
award
{
1
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
300000
,
Noble
:
5
,
NobleDay
:
15
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
100000
,
Noble
:
5
,
NobleDay
:
7
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
2
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
200000
,
Noble
:
4
,
NobleDay
:
15
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
80000
,
Noble
:
4
,
NobleDay
:
7
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
3
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
100000
,
Noble
:
5
,
NobleDay
:
5
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
50000
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
4
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
// 奖励、日志
awardList
,
logList
,
err
:=
getAwardAndLogList
(
model
,
powerIds
,
response
.
Items
,
calcMonth
)
if
err
!=
nil
{
return
err
}
return
model
.
Transaction
(
func
(
model
*
domain
.
Model
)
error
{
// log
err
=
groupPower_m
.
CreateActFamilyMonthRankLog
(
model
,
logList
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct err:%+v"
,
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
})
}
func
getAwardAndLogList
(
model
*
domain
.
Model
,
powerIds
[]
uint64
,
items
[]
group_power_cv
.
CvGroupPowerRankData
,
calcMonth
string
)
([]
*
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
err
return
nil
,
nil
,
err
}
// log list
logList
:=
make
([]
*
groupPower_m
.
ActFamilyMonthRankLog
,
0
,
50
)
for
_
,
v
:=
range
response
.
I
tems
{
for
_
,
v
:=
range
i
tems
{
teamRank
:=
0
if
v
.
Rank
>=
1
&&
v
.
Rank
<=
3
{
teamRank
=
v
.
Rank
...
...
@@ -252,16 +249,17 @@ func CalcGroupPowerMonthRankAct(model *domain.Model) error {
ownerId
,
ok
:=
ownerMap
[
v
.
Id
]
if
!
ok
||
ownerId
<=
0
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct 获取势力主错误 familyId:%d"
,
v
.
Id
)
return
bizerr
.
InvalidParameter
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
bizerr
.
InvalidParameter
return
nil
,
nil
,
bizerr
.
InvalidParameter
}
oAwardJ
,
_
:=
json
.
Marshal
(
oAward
)
logList
=
append
(
logList
,
&
groupPower_m
.
ActFamilyMonthRankLog
{
...
...
@@ -272,9 +270,14 @@ func CalcGroupPowerMonthRankAct(model *domain.Model) error {
UserId
:
ownerId
,
Award
:
string
(
oAwardJ
),
})
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
MedalId
:
oAward
.
MedalId
,
MedalDuration
:
oAward
.
MedalDay
,
Diamond
:
oAward
.
Diamond
,
NobleLevel
:
oAward
.
Noble
,
NobleDuration
:
oAward
.
NobleDay
})
for
i
,
u
:=
range
v
.
StarList
{
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
MedalId
:
oAward
.
MedalId
,
MedalDuration
:
oAward
.
MedalDay
,
Diamond
:
oAward
.
Diamond
,
NobleLevel
:
oAward
.
Noble
,
NobleDuration
:
oAward
.
NobleDay
})
// 家族成员奖励
for
i
,
m
:=
range
v
.
StarList
{
uRank
:=
i
+
1
confIdx
:=
9
if
uRank
>=
1
&&
uRank
<=
3
{
...
...
@@ -282,40 +285,63 @@ func CalcGroupPowerMonthRankAct(model *domain.Model) error {
}
else
if
uRank
>=
4
&&
uRank
<=
10
{
confIdx
=
4
}
a
ward
,
aOk
:=
uRankConfMap
[
confIdx
]
mA
ward
,
aOk
:=
uRankConfMap
[
confIdx
]
if
!
aOk
{
break
}
awardJ
,
_
:=
json
.
Marshal
(
a
ward
)
mAwardJ
,
_
:=
json
.
Marshal
(
mA
ward
)
logList
=
append
(
logList
,
&
groupPower_m
.
ActFamilyMonthRankLog
{
Period
:
calcMonth
,
FamilyId
:
v
.
Id
,
RankFamily
:
v
.
Rank
,
RankUser
:
uRank
,
UserId
:
u
.
User
.
Id
,
Award
:
string
(
a
wardJ
),
UserId
:
m
.
User
.
Id
,
Award
:
string
(
mA
wardJ
),
})
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
MedalId
:
award
.
MedalId
,
MedalDuration
:
award
.
MedalDay
,
Diamond
:
award
.
Diamond
,
NobleLevel
:
award
.
Noble
,
NobleDuration
:
award
.
NobleDay
,
HeaddressId
:
award
.
HeaddressId
,
HeaddressDuration
:
award
.
HeaddressDay
})
awardList
=
append
(
awardList
,
&
award_tx
.
UserAward
{
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
}
return
model
.
Transaction
(
func
(
model
*
domain
.
Model
)
error
{
// log
err
=
groupPower_m
.
CreateActFamilyMonthRankLog
(
model
,
logList
)
if
err
!=
nil
{
model
.
Log
.
Errorf
(
"CalcGroupPowerMonthRankAct err:%+v"
,
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
})
// 奖励配置
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
:
1
,
MedalDay
:
30
,
Diamond
:
300000
,
Noble
:
5
,
NobleDay
:
15
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
100000
,
Noble
:
5
,
NobleDay
:
7
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
2
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
200000
,
Noble
:
4
,
NobleDay
:
15
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
80000
,
Noble
:
4
,
NobleDay
:
7
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
3
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
100000
,
Noble
:
5
,
NobleDay
:
5
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
Diamond
:
50000
},
4
:
{
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
4
:
{
0
:
{
MedalId
:
1
,
MedalDay
:
30
},
1
:
{
MedalId
:
1
,
MedalDay
:
30
,
HeaddressId
:
1
,
HeaddressDay
:
30
},
},
}
}
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