From 705c4b125bd1e37d5f6e1d38053c936b60b5840b Mon Sep 17 00:00:00 2001 From: hujiabin Date: Tue, 1 Nov 2022 11:13:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E8=A1=B0=E5=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/game2006service/tasks/damping.js | 42 ++++++++++++++++--------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/server/game2006service/tasks/damping.js b/server/game2006service/tasks/damping.js index d2771afa..c8c2b32a 100644 --- a/server/game2006service/tasks/damping.js +++ b/server/game2006service/tasks/damping.js @@ -10,11 +10,7 @@ const CHIP_TYPE = 3; class Damping { async start() { - if (utils.getArgv('env') == 'test') { - FormulaService.a(); - console.log('is test env'); - return; - } + console.log('Damping.start'); while (true) { await this.doDamping(utils.getUtcTime()); @@ -29,6 +25,7 @@ class Damping { async doDamping(nowTime) { try { + const daySeconds = utils.getDaySeconds(nowTime, constant.TIME_ZONE); const yesterdaySeconds = daySeconds - 86400; console.log('today:'+daySeconds) @@ -38,10 +35,13 @@ class Damping { throw err; } if (!err && conn) { - const nftList = await this.yesterdayActiveNft(conn,yesterdaySeconds); //获取昨日活跃产出ceg的nft列表 - this.updateNftLaborValue(conn,nftList) ; //对nft的劳力值进行递增 - this.dampingTili(conn,nftList); //对nft进行体力衰减 - this.increaseServiceDays(conn); //递增服务器自然天数 + const isExec = await this.isExec(conn, nowTime); + if (! isExec){ + const nftList = await this.yesterdayActiveNft(conn,yesterdaySeconds); //获取昨日活跃产出ceg的nft列表 + this.updateNftLaborValue(conn,nftList) ; //对nft的劳力值进行递增 + this.dampingTili(conn,nftList); //对nft进行体力衰减 + this.increaseServiceDays(conn,nowTime); //递增服务器自然天数 + } } } catch (err) { console.log(err); @@ -196,19 +196,33 @@ class Damping { } //递增服务器自然天数 - async increaseServiceDays(conn){ + async increaseServiceDays(conn,nowTime){ await conn.upsert( 't_realtime_data', [['name','server_days']], [['!value1', ()=>{ return 'value1 + 1' - }]], - [['name','server_days'],['value1',1]] + }],['modifytime',nowTime]], + [['name','server_days'],['value1',1],['createtime',nowTime],['modifytime',nowTime]] ); } + async isExec(conn,nowTime){ + const {err, row} = await conn.execQueryOne( + 'SELECT * FROM t_realtime_data WHERE name = ?', + [ + 'server_days' + ] + ); + if (nowTime - row.modifytime < 86400){ + return true; + }else { + return false; + } + } + async getChipOne(conn,unid) { - const {err, rows} = await conn.execQueryOne( + const {err, row} = await conn.execQueryOne( 'SELECT * FROM t_chip WHERE idx = ?', [ unid @@ -218,7 +232,7 @@ class Damping { throw err; return; } - return rows; + return row; } }