diff --git a/game-server/app/servers/guild/handler/donateHandler.ts b/game-server/app/servers/guild/handler/donateHandler.ts index 48c8c67a8..25f099fe2 100644 --- a/game-server/app/servers/guild/handler/donateHandler.ts +++ b/game-server/app/servers/guild/handler/donateHandler.ts @@ -61,7 +61,7 @@ export class DonationHandler { const guildCode: string = session.get('guildCode'); let res: any = await lockData(serverId, DATA_NAME.DONATE, guildCode);// 锁定资金的增加 try { - if (!res) { + if (!!res.err) { return resResult(STATUS.REDLOCK_ERR); } diff --git a/game-server/app/services/redLockService.ts b/game-server/app/services/redLockService.ts index 9e39aa440..402445280 100644 --- a/game-server/app/services/redLockService.ts +++ b/game-server/app/services/redLockService.ts @@ -73,16 +73,19 @@ export async function lockDataWithNoParam(dataName: string) { return await lock(key); } -function lock(lockKey: string) { - return _redlockCache.redlock.lock(lockKey, _redlockCache.ttl).then(function(lock) { - setLock(lockKey, lock); - return {err: null, releaseCallback: releaseCallback.bind(null, lockKey)}; - }).catch(function(err) { - console.error(err); - return { err }; - }); +async function lock(lockKey: string) { + return new Promise((resolve) => { + _redlockCache.redlock.lock(lockKey, _redlockCache.ttl, function(err, lock) { + if(err) { + return resolve({ err }) + } + setLock(lockKey, lock); + return resolve({err: null, releaseCallback: releaseCallback.bind(null, lockKey)}); + }); + }) } -export async function releaseCallback(lockKey: string) { + +function releaseCallback(lockKey: string) { releaseLock(lockKey); } diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 130c8ac85..05ade9e82 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -6,7 +6,7 @@ export const STATUS = { INTERNAL_ERR: { code: 3, simStr: '内部错误' }, CONNECTOR_ERR: { code: 4, simStr: '连接服配置错误' }, LOGIN_ERR: { code: 5, simStr: '检测到您的账号异地登录,已被迫下线' }, - REDLOCK_ERR: { code: 6, simStr: 'redlock错误' }, + REDLOCK_ERR: { code: 6, simStr: '请勿频繁操作' }, SERVER_MAINTENANCE: { code: 7, simStr: '服务器维护中' }, VERSION_ERR: { code: 8, simStr: '版本号太低,请更新' }, BLOCK_WORDS: { code: 9, simStr: '内容有不合法词汇' }, diff --git a/shared/resource/jsons/server_const.json b/shared/resource/jsons/server_const.json index cffebe112..83d7e083e 100644 --- a/shared/resource/jsons/server_const.json +++ b/shared/resource/jsons/server_const.json @@ -13,6 +13,7 @@ { "id": 4, "desc": "私聊", "route": "chat.chatHandler.sendPrivateMessage", "param": {}, "interval": 1000 }, { "id": 5, "desc": "发送弹幕", "route": "battle.barrageHandler.sendBarrage", "param": {}, "interval": 1000 }, { "id": 6, "desc": "获取信息", "route": "connector.entryHandler.getData", "param": {}, "interval": 1000 }, - { "id": 7, "desc": "刷新信息", "route": "connector.entryHandler.refresh", "param": {}, "interval": 1000 } + { "id": 7, "desc": "刷新信息", "route": "connector.entryHandler.refresh", "param": {}, "interval": 1000 }, + { "id": 8, "desc": "捐赠", "route": "guild.donateHandler.donate", "param": {}, "interval": 200 } ] } \ No newline at end of file