feat:重置bug修复

This commit is contained in:
xichaoyin 2024-01-12 14:14:42 +08:00
parent 8718342e3b
commit dd9eeca150

View File

@ -1,11 +1,11 @@
import {ApiCall} from "tsrpc" import { ApiCall } from "tsrpc"
import {ReqAddHuoDong} from "../../../monopoly/protocols/PtlAddHuoDong" import { ReqAddHuoDong } from "../../../monopoly/protocols/PtlAddHuoDong"
import {HuoDongFun} from "../../../public/huodongfun" import { HuoDongFun } from "../../../public/huodongfun"
import {PublicShared} from "../../../shared/public/public" import { PublicShared } from "../../../shared/public/public"
import {EmailFun} from "../../../public/email" import { EmailFun } from "../../../public/email"
import {playerInfo} from "../../../shared/protocols/user/PtlLogin" import { playerInfo } from "../../../shared/protocols/user/PtlLogin"
import {PlayerFun} from "../../../public/player" import { PlayerFun } from "../../../public/player"
import {TaskFun} from "../../../public/task" import { TaskFun } from "../../../public/task"
// hddata.data // hddata.data
export interface Data { export interface Data {
@ -128,15 +128,15 @@ export default class HQJGFun {
*/ */
static async getRankList(hdid: number) { static async getRankList(hdid: number) {
let uids = await G.mongodb.collection("event").find( let uids = await G.mongodb.collection("event").find(
{type: this.dataType(hdid), "bossres.maxdps": {$gt: 0}}, { type: this.dataType(hdid), "bossres.maxdps": { $gt: 0 } },
{ {
sort: {"bossres.maxdps": -1, "bossres.zhanli": -1}, sort: { "bossres.maxdps": -1, "bossres.zhanli": -1 },
projection: {uid: 1, bossres: 1} projection: { uid: 1, bossres: 1 }
} }
).limit(50).toArray(); ).limit(50).toArray();
let userinfo = await G.mongodb.collection('user').find( let userinfo = await G.mongodb.collection('user').find(
{uid: {$in: uids.map(v => v.uid)}}, { uid: { $in: uids.map(v => v.uid) } },
).toArray(); ).toArray();
let res = []; let res = [];
@ -144,7 +144,7 @@ export default class HQJGFun {
let uid = uids[rank - 1].uid; let uid = uids[rank - 1].uid;
let user = userinfo.find(v => v.uid == uid); let user = userinfo.find(v => v.uid == uid);
if (user) { if (user) {
res.push({rank, ...user, valArr: [uids[rank - 1].bossres.maxdps]}); res.push({ rank, ...user, valArr: [uids[rank - 1].bossres.maxdps] });
} }
} }
@ -176,14 +176,14 @@ export default class HQJGFun {
} }
let data = await G.mongodb.cEvent(this.dataType(hd.hdid)).findOne({ let data = await G.mongodb.cEvent(this.dataType(hd.hdid)).findOne({
uid: call.uid, type: this.dataType(hd.hdid) uid: call.uid, type: this.dataType(hd.hdid)
}, {projection: {_id: 0}}); }, { projection: { _id: 0 } });
if (!data) { if (!data) {
data = (await G.mongodb.cEvent(this.dataType(hd.hdid)).findOneAndUpdate({ data = (await G.mongodb.cEvent(this.dataType(hd.hdid)).findOneAndUpdate({
uid: call.uid, type: this.dataType(hd.hdid) uid: call.uid, type: this.dataType(hd.hdid)
}, { }, {
$set: this.defaultData $set: this.defaultData
}, {upsert: true, returnDocument: 'after', projection: {_id: 0}})).value; }, { upsert: true, returnDocument: 'after', projection: { _id: 0 } })).value;
} }
let today = this.today(hd); let today = this.today(hd);
@ -195,8 +195,8 @@ export default class HQJGFun {
data.task.val[`day${today}`][taskid] = await TaskFun.getTaskNval(call, taskcon); data.task.val[`day${today}`][taskid] = await TaskFun.getTaskNval(call, taskcon);
} }
await G.mongodb.collection('event').updateOne( await G.mongodb.collection('event').updateOne(
{uid: call.uid, type: this.dataType(hd.hdid)}, { uid: call.uid, type: this.dataType(hd.hdid) },
{$set: {[`task.val.day${today}`]: data.task.val[`day${today}`]}} { $set: { [`task.val.day${today}`]: data.task.val[`day${today}`] } }
); );
} }
@ -206,13 +206,13 @@ export default class HQJGFun {
/** 设置我的数据 */ /** 设置我的数据 */
static async setMyData(uid: string, hdid: number, update: { [k in keyof Partial<PlayerData>]: PlayerData[k] }) { static async setMyData(uid: string, hdid: number, update: { [k in keyof Partial<PlayerData>]: PlayerData[k] }) {
let res = await G.mongodb.cEvent(this.dataType(hdid)).updateOne( let res = await G.mongodb.cEvent(this.dataType(hdid)).updateOne(
{uid: uid, type: this.dataType(hdid)}, {$set: update} { uid: uid, type: this.dataType(hdid) }, { $set: update }, { upsert: true }
); );
if (res.modifiedCount <= 0) { if (res.upsertedCount == 1) {
console.log("===>", uid, hdid, update); console.log("===>", uid, hdid, update);
await G.mongodb.cEvent(this.dataType(hdid)).updateOne( await G.mongodb.cEvent(this.dataType(hdid)).updateOne(
{uid: uid, type: this.dataType(hdid)}, {$set: Object.assign(this.defaultData, update)} { uid: uid, type: this.dataType(hdid) }, { $set: Object.assign(this.defaultData, update) }
); );
} }
} }
@ -226,8 +226,8 @@ export default class HQJGFun {
) )
// 取stime小于当前时间的最后一条数据 // 取stime小于当前时间的最后一条数据
let hdinfo = await G.mongodb.collection("hdinfo").find({ let hdinfo = await G.mongodb.collection("hdinfo").find({
htype: this.htype, stime: {$lte: time} htype: this.htype, stime: { $lte: time }
}, {sort: {stime: -1}}).limit(1).toArray(); }, { sort: { stime: -1 } }).limit(1).toArray();
// 没有活动数 // 没有活动数
if (hdinfo.length <= 0) { if (hdinfo.length <= 0) {
@ -242,7 +242,7 @@ export default class HQJGFun {
} }
let today = PublicShared.getDiff(hd.stime, G.time - 300); let today = PublicShared.getDiff(hd.stime, G.time - 300);
G.mongodb.collection("event").find({type: `huangqijiuguan_${hdid}`}).toArray().then(datas => { G.mongodb.collection("event").find({ type: `huangqijiuguan_${hdid}` }).toArray().then(datas => {
let hddata = hd.data as Data; let hddata = hd.data as Data;
for (let i = 0; i < datas.length; i++) { for (let i = 0; i < datas.length; i++) {
let data = datas[i]; let data = datas[i];
@ -288,7 +288,7 @@ export default class HQJGFun {
// 查询昨天23:59:00或者今天00:00:00结束的活动 // 查询昨天23:59:00或者今天00:00:00结束的活动
let hdinfo = await G.mongodb.collection("hdinfo").find({ let hdinfo = await G.mongodb.collection("hdinfo").find({
htype: this.htype, rtime: {$gt: yesterday, $lte: today} htype: this.htype, rtime: { $gt: yesterday, $lte: today }
}).toArray(); }).toArray();
// 没有活动数 或者发奖标识已设置 // 没有活动数 或者发奖标识已设置
@ -304,10 +304,10 @@ export default class HQJGFun {
} }
let uids = await G.mongodb.collection("event").find( let uids = await G.mongodb.collection("event").find(
{type: this.dataType(hdid)}, { type: this.dataType(hdid) },
{ {
sort: {"bossres.maxdps": -1, "bossres.zhanli": -1}, sort: { "bossres.maxdps": -1, "bossres.zhanli": -1 },
projection: {uid: 1, bossres: 1} projection: { uid: 1, bossres: 1 }
} }
).toArray(); ).toArray();
@ -328,7 +328,7 @@ export default class HQJGFun {
} }
// 标记已发送 // 标记已发送
await G.mongodb.collection("hdinfo").updateOne( await G.mongodb.collection("hdinfo").updateOne(
{hdid: hdid}, {$set: {"data.sendrank": true}} { hdid: hdid }, { $set: { "data.sendrank": true } }
); );
// 货币兑换 // 货币兑换
G.mongodb.collection("user").find().toArray().then(async (users) => { G.mongodb.collection("user").find().toArray().then(async (users) => {
@ -409,7 +409,7 @@ export default class HQJGFun {
// 设置任务 // 设置任务
if (isset == 1) { if (isset == 1) {
await G.mongodb.collection('event').updateOne({uid: call.uid, type: this.dataType(hd.hdid)}, { await G.mongodb.collection('event').updateOne({ uid: call.uid, type: this.dataType(hd.hdid) }, {
$set: { $set: {
[`task.val.day${today}`]: mydata.task.val[`day${today}`] [`task.val.day${today}`]: mydata.task.val[`day${today}`]
} }
@ -436,13 +436,13 @@ export default class HQJGFun {
let mydata = await this.getMydata(call, hd); let mydata = await this.getMydata(call, hd);
if (!mydata.giftbuy[gift.id]) { if (!mydata.giftbuy[gift.id]) {
mydata.giftbuy[gift.id] = {num: 0, select: []}; mydata.giftbuy[gift.id] = { num: 0, select: [] };
} }
let prize: atn[] = []; let prize: atn[] = [];
if (mydata.giftbuy[gift.id].num + 1 > gift.buynum) { if (mydata.giftbuy[gift.id].num + 1 > gift.buynum) {
let pay = G.gc.pay[payId]; let pay = G.gc.pay[payId];
prize.push({a: "attr", t: "rmbmoney", n: pay.payExp[0].n}) prize.push({ a: "attr", t: "rmbmoney", n: pay.payExp[0].n })
} else { } else {
prize = gift.prize; prize = gift.prize;
for (let i = 0; i < gift.dlz.length; i++) { for (let i = 0; i < gift.dlz.length; i++) {
@ -459,7 +459,7 @@ export default class HQJGFun {
mydata.giftbuy[gift.id].num++; mydata.giftbuy[gift.id].num++;
// 发送奖励 // 发送奖励
await PlayerFun.sendPrize(call, prize, true); await PlayerFun.sendPrize(call, prize, true);
await this.setMyData(call.uid, hd.hdid, {giftbuy: mydata.giftbuy}); await this.setMyData(call.uid, hd.hdid, { giftbuy: mydata.giftbuy });
} }
static async getHongDian(call: ApiCall, hd: ReqAddHuoDong, mydata?: PlayerData) { static async getHongDian(call: ApiCall, hd: ReqAddHuoDong, mydata?: PlayerData) {
@ -471,14 +471,14 @@ export default class HQJGFun {
for (let i = 0; i < hddata.choukajiangli.length; i++) { for (let i = 0; i < hddata.choukajiangli.length; i++) {
let ele = hddata.choukajiangli[i]; let ele = hddata.choukajiangli[i];
if (mydata.zhaomu.num >= ele.num && !mydata.zhaomu.prize.includes(i)) { if (mydata.zhaomu.num >= ele.num && !mydata.zhaomu.prize.includes(i)) {
return {show: true} return { show: true }
} }
} }
let today = this.today(hd); let today = this.today(hd);
// 当今日没有进行boss挑战时 // 当今日没有进行boss挑战时
if (!mydata.bossres.todaydps[today]) { if (!mydata.bossres.todaydps[today]) {
return {show: true} return { show: true }
} }
// 当每日任务界面存在可领取的任务奖励时 // 当每日任务界面存在可领取的任务奖励时
@ -486,7 +486,7 @@ export default class HQJGFun {
for (let taskid in hddata.task[`day${day}`]) { for (let taskid in hddata.task[`day${day}`]) {
let task = hddata.task[`day${day}`][taskid]; let task = hddata.task[`day${day}`][taskid];
if (mydata.task.val[`day${day}`]?.[taskid] >= task.pval && !(mydata.task.rec?.[`day${day}`] || []).includes(Number(taskid))) { if (mydata.task.val[`day${day}`]?.[taskid] >= task.pval && !(mydata.task.rec?.[`day${day}`] || []).includes(Number(taskid))) {
return {show: true} return { show: true }
} }
} }
} }
@ -494,17 +494,17 @@ export default class HQJGFun {
// 当干部挑战界面存在可领取的挑战任务奖励时 // 当干部挑战界面存在可领取的挑战任务奖励时
for (let mb of hddata.bossTask) { for (let mb of hddata.bossTask) {
if (mb.need <= mydata.bossres.maxdps && !mydata.bossres.recdpstask.includes(mb.id)) { if (mb.need <= mydata.bossres.maxdps && !mydata.bossres.recdpstask.includes(mb.id)) {
return {show: true} return { show: true }
} }
} }
// 当存在可以领取的免费礼包时 // 当存在可以领取的免费礼包时
for (let gift of hddata.gift) { for (let gift of hddata.gift) {
if (gift.free && (mydata.giftbuy[gift.id]?.num || 0) < gift.buynum) { if (gift.free && (mydata.giftbuy[gift.id]?.num || 0) < gift.buynum) {
return {show: true} return { show: true }
} }
} }
return {show: false} return { show: false }
} }
} }