From 09b74e349003711d965f9eedb344ac356ac576a7 Mon Sep 17 00:00:00 2001 From: dy Date: Sun, 31 Dec 2023 14:26:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=91=E5=B8=AE=E4=BA=89=E9=9C=B8=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E7=8E=A9=E5=AE=B6=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api_cross/hbzb/ApiUpdateHbzbCrossUser.ts | 23 ++++++++------ src/api_s2c/hbzb/jfs/ApiOpen.ts | 32 ++++++++++---------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/api_cross/hbzb/ApiUpdateHbzbCrossUser.ts b/src/api_cross/hbzb/ApiUpdateHbzbCrossUser.ts index 88e3685..fce9ac4 100644 --- a/src/api_cross/hbzb/ApiUpdateHbzbCrossUser.ts +++ b/src/api_cross/hbzb/ApiUpdateHbzbCrossUser.ts @@ -1,18 +1,23 @@ -import { ApiCall } from "tsrpc"; -import { ReqUpdateHbzbCrossUser, ResUpdateHbzbCrossUser } from "../../cross/protocols/hbzb/PtlUpdateHbzbCrossUser"; +import {ApiCall} from "tsrpc"; +import {ReqUpdateHbzbCrossUser, ResUpdateHbzbCrossUser} from "../../cross/protocols/hbzb/PtlUpdateHbzbCrossUser"; /**更新跨服数据库里,黑帮争霸的玩家数据 */ export default async function (call: ApiCall) { - let setData = { - "data":{ + let setData: any = { + "data": { player: call.req.user.player, roles: call.req.user.roles, uid: call.req.uid }, - "jifen": -999999, - "rank": -999999, - "zbsgroup":"" }; - G.mongodb.collection('hbzb_user_cross').updateOne({ uid: setData.data.uid }, { $set: setData }, { upsert: true }); - call.succ({ }); + if (call.req.isNew) { + setData = { + ...setData, + "jifen": -999999, + "rank": -999999, + "zbsgroup": "" + } + } + G.mongodb.collection('hbzb_user_cross').updateOne({uid: setData.data.uid}, {$set: setData}, {upsert: true}); + call.succ({}); } \ No newline at end of file diff --git a/src/api_s2c/hbzb/jfs/ApiOpen.ts b/src/api_s2c/hbzb/jfs/ApiOpen.ts index 26a5c67..bf7901e 100644 --- a/src/api_s2c/hbzb/jfs/ApiOpen.ts +++ b/src/api_s2c/hbzb/jfs/ApiOpen.ts @@ -1,18 +1,16 @@ -import { ApiCall } from "tsrpc"; -import { Rank } from '../../../public/rank/rank'; -import { ReqOpen, ResOpen } from "../../../shared/protocols/hbzb/jfs/PtlOpen"; -import { PublicShared } from '../../../shared/public/public'; -import { getHbzbData, getMyRank, getToper200RankUid, updateHbzbCrossUser } from "./fun"; +import {ApiCall} from "tsrpc"; +import {Rank} from '../../../public/rank/rank'; +import {ReqOpen, ResOpen} from "../../../shared/protocols/hbzb/jfs/PtlOpen"; +import {PublicShared} from '../../../shared/public/public'; +import {getHbzbData, getMyRank, getToper200RankUid, updateHbzbCrossUser} from "./fun"; export default async function (call: ApiCall) { //查看本地数据库里,刷出来的玩家数据 - let dbData = await getHbzbData(call.uid ); + let dbData = await getHbzbData(call.uid); let data: typeof dbData.data = dbData?.data || {} as any; - if (dbData == null) { - //如果没有,则同步到跨服 - await updateHbzbCrossUser(await call.conn.getDefaultFightData(), true); - } + //如果没有,则同步到跨服 + await updateHbzbCrossUser(await call.conn.getDefaultFightData(), dbData == null); if (!data.refreshTime || data.refreshTime < PublicShared.getToDayZeroTime()) { data.winNum = 0; @@ -26,19 +24,21 @@ export default async function (call: ApiCall) { //积分赛时的排行榜,是本服积分排序 data.jifen = 0; //但是刷出来的对手,是跨服的玩家 - let callRes = await G.clientCross.callApi('hbzb/jfs/GetEnemy', { uid: call.uid, auto: true }); - if (!callRes.isSucc){ + let callRes = await G.clientCross.callApi('hbzb/jfs/GetEnemy', {uid: call.uid, auto: true}); + if (!callRes.isSucc) { //todo 健壮性处理 return call.errorCode(-4) } if (callRes.res.enemy.length) - data.enemy = callRes.res.enemy.map(e => { return { ...e, result: null }; }); + data.enemy = callRes.res.enemy.map(e => { + return {...e, result: null}; + }); } G.mongodb.cPlayerInfo('hbzb').updateOne( - { uid: call.uid, type: 'hbzb' }, - { $set: { data: data } }, - { upsert: true } + {uid: call.uid, type: 'hbzb'}, + {$set: {data: data}}, + {upsert: true} ); }