Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yysh5
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
data_server
yysh5
Commits
e668f9e2
Commit
e668f9e2
authored
May 07, 2019
by
姜登
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
nodelimit
parent
88c37c6f
Pipeline
#7114
passed with stage
in 4 seconds
Changes
3
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
46 additions
and
0 deletions
+46
-0
partner.js
app/service/partner.js
+44
-0
config.local.js
config/config.local.js
+1
-0
config.prod.js
config/config.prod.js
+1
-0
No files found.
app/service/partner.js
View file @
e668f9e2
...
...
@@ -144,6 +144,50 @@ class PartnerService extends Service {
}
return
;
}
async
appKeyLimit
(
appKey
)
{
const
{
ctx
,
partnerAPI
:
{
redisappKeyLimitPrefix
}
}
=
this
;
let
data
=
await
this
.
app
.
redis
.
get
(
redisappKeyLimitPrefix
);
if
(
data
)
{
data
=
JSON
.
parse
(
data
);
if
(
data
.
includes
(
appKey
))
{
let
limit
=
await
this
.
app
.
redis
.
get
(
redisappKeyLimitPrefix
+
appKey
);
if
(
limit
)
{
limit
=
JSON
.
parse
(
limit
);
if
(
limit
.
currentCount
>=
limit
.
limitCount
)
{
ctx
.
throw
(
422
,
{
message
:
'appKey查询数量超过限制,请联系技术人员'
});
}
else
{
// limit.currentCount++;
// await this.app.redis.set(redisappKeyLimitPrefix + appKey, JSON.stringify({ currentCount: limit.currentCount, limitCount: limit.limitCount }), 'EX', 300);
await
ctx
.
model
.
query
(
'UPDATE node_limit set currentCount = currentCount + 1 where appKey = ?'
,
{
type
:
'UPDATE'
,
replacements
:
[
appKey
],
});
}
}
}
}
else
{
const
dbRes
=
await
ctx
.
model
.
NodeLimit
.
findAll
({
attributes
:
[
'appKey'
,
'currentCount'
,
'limitCount'
],
where
:
{
type
:
'yys'
},
});
if
(
dbRes
)
{
const
appKeyArray
=
[];
for
(
const
item
of
dbRes
)
{
const
{
appKey
,
currentCount
,
limitCount
}
=
item
;
appKeyArray
.
push
(
appKey
);
await
this
.
app
.
redis
.
set
(
redisappKeyLimitPrefix
+
appKey
,
JSON
.
stringify
({
currentCount
,
limitCount
}),
'EX'
,
300
);
}
await
this
.
app
.
redis
.
set
(
redisappKeyLimitPrefix
,
JSON
.
stringify
(
appKeyArray
),
'EX'
,
300
);
if
(
appKeyArray
.
includes
(
appKey
))
{
await
ctx
.
model
.
query
(
'UPDATE node_limit set currentCount = currentCount + 1 where appKey = ?'
,
{
type
:
'UPDATE'
,
replacements
:
[
appKey
],
});
}
}
}
}
}
module
.
exports
=
PartnerService
;
config/config.local.js
View file @
e668f9e2
...
...
@@ -39,6 +39,7 @@ module.exports = () => {
redisAgreementsPrefix
:
'URANUS.YYS.PARNTERS.Agreements'
,
fetchInfo
:
'/chaos/partner'
,
redisInfoPrefix
:
'URANUS.YYS.PARNTERS.Info'
,
redisappKeyLimitPrefix
:
'URANUS.YYS.PARNTERS.Limit'
,
};
config
.
scriptsAPI
=
{
...
...
config/config.prod.js
View file @
e668f9e2
...
...
@@ -84,6 +84,7 @@ module.exports = () => {
redisAgreementsPrefix
:
'URANUS.YYS.PARNTERS.Agreements'
,
fetchInfo
:
'/chaos/partner'
,
redisInfoPrefix
:
'URANUS.YYS.PARNTERS.Info'
,
redisappKeyLimitPrefix
:
'URANUS.YYS.PARNTERS.Limit'
,
};
config
.
lockKeys
=
{
...
...
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