Merge branch 'bugfix' of http://git.legu.cc/qixin/HJ_Server into bugfix

This commit is contained in:
ciniao 2023-12-26 14:03:26 +08:00
commit 9585377a97

View File

@ -7,7 +7,16 @@ import { ReqDldFight, ResDldFight } from "../../shared/protocols/wzry/PtlDldFigh
import { PublicShared } from "../../shared/public/public"; import { PublicShared } from "../../shared/public/public";
import { HongDianChange } from "../hongdian/fun"; import { HongDianChange } from "../hongdian/fun";
const maxScore = 269; // 积分上限
const lockPrefix = 'lock:DldFight:';
export default async function (call: ApiCall<ReqDldFight, ResDldFight>) { export default async function (call: ApiCall<ReqDldFight, ResDldFight>) {
const lockKey = lockPrefix + call.uid;
const gotLock = await G.ioredis.setnx(lockKey, 1);
if (!gotLock) {
return call.errorCode(-101); // -101 并发请求, 告知客户端稍后再试 request_too_fast
}
await G.ioredis.pexpire(lockKey, 500); // 设置 ttl 避免死锁. 策划要求: 500ms
let status = await WangZheRongYaofun.getWangZheStatus(); let status = await WangZheRongYaofun.getWangZheStatus();
if (status.status != 3) { if (status.status != 3) {
// 未到大乱斗时间 // 未到大乱斗时间
@ -41,6 +50,10 @@ export default async function (call: ApiCall<ReqDldFight, ResDldFight>) {
let _jifen = _myFight.jifen; let _jifen = _myFight.jifen;
_myFight.jifen = _myFight.jifen + await WangZheRongYaofun.getMyScore(dldfight); _myFight.jifen = _myFight.jifen + await WangZheRongYaofun.getMyScore(dldfight);
// 添加积分上限 (策划要求)
if (_myFight.jifen > maxScore) {
_myFight.jifen = maxScore;
}
// 设置数据 // 设置数据
let _r = await WangZheRongYaofun.setWzryDldFight(call, _myFight); let _r = await WangZheRongYaofun.setWzryDldFight(call, _myFight);
@ -69,7 +82,7 @@ export default async function (call: ApiCall<ReqDldFight, ResDldFight>) {
_mydata.jifen = _myFight.jifen; _mydata.jifen = _myFight.jifen;
HongDianChange.sendChangeKey(call.uid, ['wzryhd']); HongDianChange.sendChangeKey(call.uid, ['wzryhd']);
await G.ioredis.del(lockKey);
call.succ({ call.succ({
mydata: _mydata, mydata: _mydata,
result: result, result: result,